001/*
002 *  Copyright 2012 Anyware Services
003 *
004 *  Licensed under the Apache License, Version 2.0 (the "License");
005 *  you may not use this file except in compliance with the License.
006 *  You may obtain a copy of the License at
007 *
008 *      http://www.apache.org/licenses/LICENSE-2.0
009 *
010 *  Unless required by applicable law or agreed to in writing, software
011 *  distributed under the License is distributed on an "AS IS" BASIS,
012 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 *  See the License for the specific language governing permissions and
014 *  limitations under the License.
015 */
016package org.ametys.plugins.repository.dublincore;
017
018import java.util.Date;
019
020import org.ametys.plugins.repository.AmetysRepositoryException;
021import org.ametys.plugins.repository.ModifiableAmetysObject;
022
023/**
024 * Interface for ametys objects which can contain Dublin Core metadata.
025 */
026public interface ModifiableDublinCoreAwareAmetysObject extends DublinCoreAwareAmetysObject, ModifiableAmetysObject
027{
028    /**
029     * Set the Dublin Core title.
030     * @param title the Dublin Core title to set. Can be null.
031     * @throws AmetysRepositoryException if an error occurs.
032     */
033    void setDCTitle(String title) throws AmetysRepositoryException;
034    
035    /**
036     * Set the Dublin Core creator.
037     * @param creator the Dublin Core creator to set. Can be null.
038     * @throws AmetysRepositoryException if an error occurs.
039     */
040    void setDCCreator(String creator) throws AmetysRepositoryException;
041    
042    /**
043     * Set the Dublin Core subject.
044     * @param subject the Dublin Core subject to set. Can be null.
045     * @throws AmetysRepositoryException if an error occurs.
046     */
047    void setDCSubject(String[] subject) throws AmetysRepositoryException;
048    
049    /**
050     * Set the Dublin Core description.
051     * @param description the Dublin Core description to set. Can be null.
052     * @throws AmetysRepositoryException if an error occurs.
053     */
054    void setDCDescription(String description) throws AmetysRepositoryException;
055    
056    /**
057     * Set the Dublin Core publisher.
058     * @param publisher the Dublin Core publisher to set. Can be null.
059     * @throws AmetysRepositoryException if an error occurs.
060     */
061    void setDCPublisher(String publisher) throws AmetysRepositoryException;
062    
063    /**
064     * Set the Dublin Core contributor.
065     * @param contributor the Dublin Core contributor to set. Can be null.
066     * @throws AmetysRepositoryException if an error occurs.
067     */
068    void setDCContributor(String contributor) throws AmetysRepositoryException;
069    
070    /**
071     * Set the Dublin Core date.
072     * @param date the Dublin Core date to set. Can be null.
073     * @throws AmetysRepositoryException if an error occurs.
074     */
075    void setDCDate(Date date) throws AmetysRepositoryException;
076    
077    /**
078     * Set the Dublin Core type. You can use a constant from org.ametys.plugins.repository.dublincore.DCMITypes.
079     * @param type the Dublin Core type to set. Can be null.
080     * @throws AmetysRepositoryException if an error occurs.
081     */
082    void setDCType(String type) throws AmetysRepositoryException;
083    
084    /**
085     * Set the Dublin Core format.
086     * @param format the Dublin Core format to set. Can be null.
087     * @throws AmetysRepositoryException if an error occurs.
088     */
089    void setDCFormat(String format) throws AmetysRepositoryException;
090    
091    /**
092     * Set the Dublin Core identifier.
093     * @param identifier the Dublin Core identifier to set. Can be null.
094     * @throws AmetysRepositoryException if an error occurs.
095     */
096    void setDCIdentifier(String identifier) throws AmetysRepositoryException;
097    
098    /**
099     * Set the Dublin Core source.
100     * @param source the Dublin Core source to set. Can be null.
101     * @throws AmetysRepositoryException if an error occurs.
102     */
103    void setDCSource(String source) throws AmetysRepositoryException;
104    
105    /**
106     * Set the Dublin Core language.
107     * @param language the Dublin Core language to set. Can be null.
108     * @throws AmetysRepositoryException if an error occurs.
109     */
110    void setDCLanguage(String language) throws AmetysRepositoryException;
111    
112    /**
113     * Set the Dublin Core relation.
114     * @param relation the Dublin Core relation to set. Can be null.
115     * @throws AmetysRepositoryException if an error occurs.
116     */
117    void setDCRelation(String relation) throws AmetysRepositoryException;
118    
119    /**
120     * Set the Dublin Core coverage.
121     * @param coverage the Dublin Core coverage to set. Can be null.
122     * @throws AmetysRepositoryException if an error occurs.
123     */
124    void setDCCoverage(String coverage) throws AmetysRepositoryException;
125    
126    /**
127     * Set the Dublin Core rights.
128     * @param rights the Dublin Core rights to set. Can be null.
129     * @throws AmetysRepositoryException if an error occurs.
130     */
131    void setDCRights(String rights) throws AmetysRepositoryException;
132}