/**
* Licensed to The Apereo Foundation under one or more contributor license
* agreements. See the NOTICE file distributed with this work for additional
* information regarding copyright ownership.
*
*
* The Apereo Foundation licenses this file to you under the Educational
* Community License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of the License
* at:
*
* http://opensource.org/licenses/ecl2.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
*/
package org.opencastproject.schema;
import static org.opencastproject.util.data.Option.error;
import static org.opencastproject.util.data.Option.none;
import static org.opencastproject.util.data.Option.some;
import org.opencastproject.util.data.Function0;
import org.opencastproject.util.data.Option;
import java.util.Date;
/** Mutable builder for {@link org.opencastproject.schema.OcDublinCore}. */
public class OcDublinCoreBuilder implements OcDublinCore {
protected Option<String> abstrakt = none();
protected Option<String> accessRights = none();
protected Option<String> accrualMethod = none();
protected Option<String> accrualPeriodicity = none();
protected Option<String> accrualPolicy = none();
protected Option<String> alternative = none();
protected Option<String> audience = none();
protected Option<String> available = none();
protected Option<String> bibliographicCitation = none();
protected Option<String> conformsTo = none();
protected Option<String> contributor = none();
protected Option<String> coverage = none();
protected Option<Date> created = none();
protected Option<String> creator = none();
protected Option<Date> date = none();
protected Option<Date> dateAccepted = none();
protected Option<Date> dateCopyrighted = none();
protected Option<Date> dateSubmitted = none();
protected Option<String> description = none();
protected Option<String> educationLevel = none();
protected Option<Long> extent = none();
protected Option<String> format = none();
protected Option<String> hasFormat = none();
protected Option<String> hasPart = none();
protected Option<String> hasVersion = none();
protected Option<String> identifier = none();
protected Option<String> instructionalMethod = none();
protected Option<String> isFormatOf = none();
protected Option<String> isPartOf = none();
protected Option<String> isReferencedBy = none();
protected Option<String> isReplacedBy = none();
protected Option<String> isRequiredBy = none();
protected Option<String> issued = none();
protected Option<String> isVersionOf = none();
protected Option<String> language = none();
protected Option<String> license = none();
protected Option<String> mediator = none();
protected Option<String> medium = none();
protected Option<String> modified = none();
protected Option<String> provenance = none();
protected Option<String> publisher = none();
protected Option<String> references = none();
protected Option<String> relation = none();
protected Option<String> replaces = none();
protected Option<String> requires = none();
protected Option<String> rights = none();
protected Option<String> rightsHolder = none();
protected Option<String> source = none();
protected Option<String> spatial = none();
protected Option<String> subject = none();
protected Option<String> tableOfContents = none();
protected Option<String> temporal = none();
protected Option<String> title = none();
protected Option<String> type = none();
protected Option<String> valid = none();
public static OcDublinCoreBuilder create(final OcDublinCore source) {
// traditional copy here: completeness is checked in the corresponding unit test by means of the transfer idiom
final OcDublinCoreBuilder target = new OcDublinCoreBuilder();
target.abstrakt = source.getAbstract();
target.accessRights = source.getAccessRights();
target.accrualMethod = source.getAccrualMethod();
target.accrualPeriodicity = source.getAccrualPeriodicity();
target.accrualPolicy = source.getAccrualPolicy();
target.alternative = source.getAlternative();
target.audience = source.getAudience();
target.available = source.getAvailable();
target.bibliographicCitation = source.getBibliographicCitation();
target.conformsTo = source.getConformsTo();
target.contributor = source.getContributor();
target.coverage = source.getCoverage();
target.created = some(source.getCreated());
target.creator = source.getCreator();
target.date = source.getDate();
target.dateAccepted = source.getDateAccepted();
target.dateCopyrighted = source.getDateCopyrighted();
target.dateSubmitted = source.getDateSubmitted();
target.description = source.getDescription();
target.educationLevel = source.getEducationLevel();
target.extent = source.getExtent();
target.format = source.getFormat();
target.hasFormat = source.getHasFormat();
target.hasPart = source.getHasPart();
target.hasVersion = source.getHasVersion();
target.identifier = source.getIdentifier();
target.instructionalMethod = source.getInstructionalMethod();
target.isFormatOf = source.getIsFormatOf();
target.isPartOf = source.getIsPartOf();
target.isReferencedBy = source.getIsReferencedBy();
target.isReplacedBy = source.getIsReplacedBy();
target.isRequiredBy = source.getIsRequiredBy();
target.issued = source.getIssued();
target.isVersionOf = source.getIsVersionOf();
target.language = source.getLanguage();
target.license = source.getLicense();
target.mediator = source.getMediator();
target.medium = source.getMedium();
target.modified = source.getModified();
target.provenance = source.getProvenance();
target.publisher = source.getPublisher();
target.references = source.getReferences();
target.relation = source.getRelation();
target.replaces = source.getReplaces();
target.requires = source.getRequires();
target.rights = source.getRights();
target.rightsHolder = source.getRightsHolder();
target.source = source.getSource();
target.spatial = source.getSpatial();
target.subject = source.getSubject();
target.tableOfContents = source.getTableOfContents();
target.temporal = source.getTemporal();
target.title = some(source.getTitle());
target.type = source.getType();
target.valid = source.getValid();
return target;
}
public OcDublinCoreBuilder setAbstract(Option<String> a) {
this.abstrakt = a;
return this;
}
public OcDublinCoreBuilder setAccessRights(Option<String> a) {
this.accessRights = a;
return this;
}
public OcDublinCoreBuilder setAccrualMethod(Option<String> a) {
this.accrualMethod = a;
return this;
}
public OcDublinCoreBuilder setAccrualPeriodicity(Option<String> a) {
this.accrualPeriodicity = a;
return this;
}
public OcDublinCoreBuilder setAccrualPolicy(Option<String> a) {
this.accrualPolicy = a;
return this;
}
public OcDublinCoreBuilder setAlternative(Option<String> a) {
this.alternative = a;
return this;
}
public OcDublinCoreBuilder setAudience(Option<String> a) {
this.audience = a;
return this;
}
public OcDublinCoreBuilder setAvailable(Option<String> a) {
this.available = a;
return this;
}
public OcDublinCoreBuilder setBibliographicCitation(Option<String> a) {
this.bibliographicCitation = a;
return this;
}
public OcDublinCoreBuilder setConformsTo(Option<String> a) {
this.conformsTo = a;
return this;
}
public OcDublinCoreBuilder setContributor(Option<String> a) {
this.contributor = a;
return this;
}
public OcDublinCoreBuilder setCoverage(Option<String> a) {
this.coverage = a;
return this;
}
public OcDublinCoreBuilder setCreated(Option<Date> a) {
this.created = a;
return this;
}
public OcDublinCoreBuilder setCreator(Option<String> a) {
this.creator = a;
return this;
}
public OcDublinCoreBuilder setDate(Option<Date> a) {
this.date = a;
return this;
}
public OcDublinCoreBuilder setDateAccepted(Option<Date> a) {
this.dateAccepted = a;
return this;
}
public OcDublinCoreBuilder setDateCopyrighted(Option<Date> a) {
this.dateCopyrighted = a;
return this;
}
public OcDublinCoreBuilder setDateSubmitted(Option<Date> a) {
this.dateSubmitted = a;
return this;
}
public OcDublinCoreBuilder setDescription(Option<String> a) {
this.description = a;
return this;
}
public OcDublinCoreBuilder setEducationLevel(Option<String> a) {
this.educationLevel = a;
return this;
}
public OcDublinCoreBuilder setExtent(Option<Long> a) {
this.extent = a;
return this;
}
public OcDublinCoreBuilder setFormat(Option<String> a) {
this.format = a;
return this;
}
public OcDublinCoreBuilder setHasFormat(Option<String> a) {
this.hasFormat = a;
return this;
}
public OcDublinCoreBuilder setHasPart(Option<String> a) {
this.hasPart = a;
return this;
}
public OcDublinCoreBuilder setHasVersion(Option<String> a) {
this.hasVersion = a;
return this;
}
public OcDublinCoreBuilder setIdentifier(Option<String> a) {
this.identifier = a;
return this;
}
public OcDublinCoreBuilder setInstructionalMethod(Option<String> a) {
this.instructionalMethod = a;
return this;
}
public OcDublinCoreBuilder setIsFormatOf(Option<String> a) {
this.isFormatOf = a;
return this;
}
public OcDublinCoreBuilder setIsPartOf(Option<String> a) {
this.isPartOf = a;
return this;
}
public OcDublinCoreBuilder setIsReferencedBy(Option<String> a) {
this.isReferencedBy = a;
return this;
}
public OcDublinCoreBuilder setIsReplacedBy(Option<String> a) {
this.isReplacedBy = a;
return this;
}
public OcDublinCoreBuilder setIsRequiredBy(Option<String> a) {
this.isRequiredBy = a;
return this;
}
public OcDublinCoreBuilder setIssued(Option<String> a) {
this.issued = a;
return this;
}
public OcDublinCoreBuilder setIsVersionOf(Option<String> a) {
this.isVersionOf = a;
return this;
}
public OcDublinCoreBuilder setLanguage(Option<String> a) {
this.language = a;
return this;
}
public OcDublinCoreBuilder setLicense(Option<String> a) {
this.license = a;
return this;
}
public OcDublinCoreBuilder setMediator(Option<String> a) {
this.mediator = a;
return this;
}
public OcDublinCoreBuilder setMedium(Option<String> a) {
this.medium = a;
return this;
}
public OcDublinCoreBuilder setModified(Option<String> a) {
this.modified = a;
return this;
}
public OcDublinCoreBuilder setProvenance(Option<String> a) {
this.provenance = a;
return this;
}
public OcDublinCoreBuilder setPublisher(Option<String> a) {
this.publisher = a;
return this;
}
public OcDublinCoreBuilder setReferences(Option<String> a) {
this.references = a;
return this;
}
public OcDublinCoreBuilder setRelation(Option<String> a) {
this.relation = a;
return this;
}
public OcDublinCoreBuilder setReplaces(Option<String> a) {
this.replaces = a;
return this;
}
public OcDublinCoreBuilder setRequires(Option<String> a) {
this.requires = a;
return this;
}
public OcDublinCoreBuilder setRights(Option<String> a) {
this.rights = a;
return this;
}
public OcDublinCoreBuilder setRightsHolder(Option<String> a) {
this.rightsHolder = a;
return this;
}
public OcDublinCoreBuilder setSource(Option<String> a) {
this.source = a;
return this;
}
public OcDublinCoreBuilder setSpatial(Option<String> a) {
this.spatial = a;
return this;
}
public OcDublinCoreBuilder setSubject(Option<String> a) {
this.subject = a;
return this;
}
public OcDublinCoreBuilder setTableOfContents(Option<String> a) {
this.tableOfContents = a;
return this;
}
public OcDublinCoreBuilder setTemporal(Option<String> a) {
this.temporal = a;
return this;
}
public OcDublinCoreBuilder setTitle(Option<String> a) {
this.title = a;
return this;
}
public OcDublinCoreBuilder setType(Option<String> a) {
this.type = a;
return this;
}
public OcDublinCoreBuilder setValid(Option<String> a) {
this.valid = a;
return this;
}
public OcDublinCoreBuilder setAbstract(String a) {
this.abstrakt = some(a);
return this;
}
public OcDublinCoreBuilder setAccessRights(String a) {
this.accessRights = some(a);
return this;
}
public OcDublinCoreBuilder setAccrualMethod(String a) {
this.accrualMethod = some(a);
return this;
}
public OcDublinCoreBuilder setAccrualPeriodicity(String a) {
this.accrualPeriodicity = some(a);
return this;
}
public OcDublinCoreBuilder setAccrualPolicy(String a) {
this.accrualPolicy = some(a);
return this;
}
public OcDublinCoreBuilder setAlternative(String a) {
this.alternative = some(a);
return this;
}
public OcDublinCoreBuilder setAudience(String a) {
this.audience = some(a);
return this;
}
public OcDublinCoreBuilder setAvailable(String a) {
this.available = some(a);
return this;
}
public OcDublinCoreBuilder setBibliographicCitation(String a) {
this.bibliographicCitation = some(a);
return this;
}
public OcDublinCoreBuilder setConformsTo(String a) {
this.conformsTo = some(a);
return this;
}
public OcDublinCoreBuilder setContributor(String a) {
this.contributor = some(a);
return this;
}
public OcDublinCoreBuilder setCoverage(String a) {
this.coverage = some(a);
return this;
}
public OcDublinCoreBuilder setCreated(Date a) {
this.created = some(a);
return this;
}
public OcDublinCoreBuilder setCreator(String a) {
this.creator = some(a);
return this;
}
public OcDublinCoreBuilder setDate(Date a) {
this.date = some(a);
return this;
}
public OcDublinCoreBuilder setDateAccepted(Date a) {
this.dateAccepted = some(a);
return this;
}
public OcDublinCoreBuilder setDateCopyrighted(Date a) {
this.dateCopyrighted = some(a);
return this;
}
public OcDublinCoreBuilder setDateSubmitted(Date a) {
this.dateSubmitted = some(a);
return this;
}
public OcDublinCoreBuilder setDescription(String a) {
this.description = some(a);
return this;
}
public OcDublinCoreBuilder setEducationLevel(String a) {
this.educationLevel = some(a);
return this;
}
public OcDublinCoreBuilder setExtent(Long a) {
this.extent = some(a);
return this;
}
public OcDublinCoreBuilder setFormat(String a) {
this.format = some(a);
return this;
}
public OcDublinCoreBuilder setHasFormat(String a) {
this.hasFormat = some(a);
return this;
}
public OcDublinCoreBuilder setHasPart(String a) {
this.hasPart = some(a);
return this;
}
public OcDublinCoreBuilder setHasVersion(String a) {
this.hasVersion = some(a);
return this;
}
public OcDublinCoreBuilder setIdentifier(String a) {
this.identifier = some(a);
return this;
}
public OcDublinCoreBuilder setInstructionalMethod(String a) {
this.instructionalMethod = some(a);
return this;
}
public OcDublinCoreBuilder setIsFormatOf(String a) {
this.isFormatOf = some(a);
return this;
}
public OcDublinCoreBuilder setIsPartOf(String a) {
this.isPartOf = some(a);
return this;
}
public OcDublinCoreBuilder setIsReferencedBy(String a) {
this.isReferencedBy = some(a);
return this;
}
public OcDublinCoreBuilder setIsReplacedBy(String a) {
this.isReplacedBy = some(a);
return this;
}
public OcDublinCoreBuilder setIsRequiredBy(String a) {
this.isRequiredBy = some(a);
return this;
}
public OcDublinCoreBuilder setIssued(String a) {
this.issued = some(a);
return this;
}
public OcDublinCoreBuilder setIsVersionOf(String a) {
this.isVersionOf = some(a);
return this;
}
public OcDublinCoreBuilder setLanguage(String a) {
this.language = some(a);
return this;
}
public OcDublinCoreBuilder setLicense(String a) {
this.license = some(a);
return this;
}
public OcDublinCoreBuilder setMediator(String a) {
this.mediator = some(a);
return this;
}
public OcDublinCoreBuilder setMedium(String a) {
this.medium = some(a);
return this;
}
public OcDublinCoreBuilder setModified(String a) {
this.modified = some(a);
return this;
}
public OcDublinCoreBuilder setProvenance(String a) {
this.provenance = some(a);
return this;
}
public OcDublinCoreBuilder setPublisher(String a) {
this.publisher = some(a);
return this;
}
public OcDublinCoreBuilder setReferences(String a) {
this.references = some(a);
return this;
}
public OcDublinCoreBuilder setRelation(String a) {
this.relation = some(a);
return this;
}
public OcDublinCoreBuilder setReplaces(String a) {
this.replaces = some(a);
return this;
}
public OcDublinCoreBuilder setRequires(String a) {
this.requires = some(a);
return this;
}
public OcDublinCoreBuilder setRights(String a) {
this.rights = some(a);
return this;
}
public OcDublinCoreBuilder setRightsHolder(String a) {
this.rightsHolder = some(a);
return this;
}
public OcDublinCoreBuilder setSource(String a) {
this.source = some(a);
return this;
}
public OcDublinCoreBuilder setSpatial(String a) {
this.spatial = some(a);
return this;
}
public OcDublinCoreBuilder setSubject(String a) {
this.subject = some(a);
return this;
}
public OcDublinCoreBuilder setTableOfContents(String a) {
this.tableOfContents = some(a);
return this;
}
public OcDublinCoreBuilder setTemporal(String a) {
this.temporal = some(a);
return this;
}
public OcDublinCoreBuilder setTitle(String a) {
this.title = some(a);
return this;
}
public OcDublinCoreBuilder setType(String a) {
this.type = some(a);
return this;
}
public OcDublinCoreBuilder setValid(String a) {
this.valid = some(a);
return this;
}
@Override public Option<String> getAbstract() {
return abstrakt;
}
@Override public Option<String> getAccessRights() {
return accessRights;
}
@Override public Option<String> getAccrualMethod() {
return accrualMethod;
}
@Override public Option<String> getAccrualPeriodicity() {
return accrualPeriodicity;
}
@Override public Option<String> getAccrualPolicy() {
return accrualPolicy;
}
@Override public Option<String> getAlternative() {
return alternative;
}
@Override public Option<String> getAudience() {
return audience;
}
@Override public Option<String> getAvailable() {
return available;
}
@Override public Option<String> getBibliographicCitation() {
return bibliographicCitation;
}
@Override public Option<String> getConformsTo() {
return conformsTo;
}
@Override public Option<String> getContributor() {
return contributor;
}
@Override public Option<String> getCoverage() {
return coverage;
}
private static final Function0<Date> createdNotSet = error("created not set");
@Override public Date getCreated() {
return created.getOrElse(createdNotSet);
}
@Override public Option<String> getCreator() {
return creator;
}
@Override public Option<Date> getDate() {
return date;
}
@Override public Option<Date> getDateAccepted() {
return dateAccepted;
}
@Override public Option<Date> getDateCopyrighted() {
return dateCopyrighted;
}
@Override public Option<Date> getDateSubmitted() {
return dateSubmitted;
}
@Override public Option<String> getDescription() {
return description;
}
@Override public Option<String> getEducationLevel() {
return educationLevel;
}
@Override public Option<Long> getExtent() {
return extent;
}
@Override public Option<String> getFormat() {
return format;
}
@Override public Option<String> getHasFormat() {
return hasFormat;
}
@Override public Option<String> getHasPart() {
return hasPart;
}
@Override public Option<String> getHasVersion() {
return hasVersion;
}
@Override public Option<String> getIdentifier() {
return identifier;
}
@Override public Option<String> getInstructionalMethod() {
return instructionalMethod;
}
@Override public Option<String> getIsFormatOf() {
return isFormatOf;
}
@Override public Option<String> getIsPartOf() {
return isPartOf;
}
@Override public Option<String> getIsReferencedBy() {
return isReferencedBy;
}
@Override public Option<String> getIsReplacedBy() {
return isReplacedBy;
}
@Override public Option<String> getIsRequiredBy() {
return isRequiredBy;
}
@Override public Option<String> getIssued() {
return issued;
}
@Override public Option<String> getIsVersionOf() {
return isVersionOf;
}
@Override public Option<String> getLanguage() {
return language;
}
@Override public Option<String> getLicense() {
return license;
}
@Override public Option<String> getMediator() {
return mediator;
}
@Override public Option<String> getMedium() {
return medium;
}
@Override public Option<String> getModified() {
return modified;
}
@Override public Option<String> getProvenance() {
return provenance;
}
@Override public Option<String> getPublisher() {
return publisher;
}
@Override public Option<String> getReferences() {
return references;
}
@Override public Option<String> getRelation() {
return relation;
}
@Override public Option<String> getReplaces() {
return replaces;
}
@Override public Option<String> getRequires() {
return requires;
}
@Override public Option<String> getRights() {
return rights;
}
@Override public Option<String> getRightsHolder() {
return rightsHolder;
}
@Override public Option<String> getSource() {
return source;
}
@Override public Option<String> getSpatial() {
return spatial;
}
@Override public Option<String> getSubject() {
return subject;
}
@Override public Option<String> getTableOfContents() {
return tableOfContents;
}
@Override public Option<String> getTemporal() {
return temporal;
}
private static final Function0<String> titleNotSet = error("title not set");
@Override public String getTitle() {
return title.getOrElse(titleNotSet);
}
@Override public Option<String> getType() {
return type;
}
@Override public Option<String> getValid() {
return valid;
}
}