blob: 82b5d1886919e4b0d55e294d23fe7901bbc274ef [file] [log] [blame]
package org.eclipse.stem.core.common.impl;
/*******************************************************************************
* Copyright (c) 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EObjectImpl;
import org.eclipse.stem.core.common.CommonPackage;
import org.eclipse.stem.core.common.DublinCore;
/**
* <!-- begin-user-doc --> An implementation of the model object '<em><b>Dublin Core</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getTitle <em>Title</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getIdentifier <em>Identifier</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getDescription <em>Description</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getCreator <em>Creator</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getDate <em>Date</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getFormat <em>Format</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getPublisher <em>Publisher</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getCoverage <em>Coverage</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getContributor <em>Contributor</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getRelation <em>Relation</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getRights <em>Rights</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getSource <em>Source</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getSubject <em>Subject</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getType <em>Type</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getLanguage <em>Language</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getBibliographicCitation <em>Bibliographic Citation</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getCreated <em>Created</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getLicense <em>License</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getRequired <em>Required</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getSpatial <em>Spatial</em>}</li>
* <li>{@link org.eclipse.stem.core.common.impl.DublinCoreImpl#getValid <em>Valid</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class DublinCoreImpl extends EObjectImpl implements DublinCore {
/**
* The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getTitle()
* @generated
* @ordered
*/
protected static final String TITLE_EDEFAULT = null;
/**
* The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getTitle()
* @generated
* @ordered
*/
protected String title = TITLE_EDEFAULT;
/**
* The default value of the '{@link #getIdentifier() <em>Identifier</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getIdentifier()
* @generated
* @ordered
*/
protected static final String IDENTIFIER_EDEFAULT = null;
/**
* The cached value of the '{@link #getIdentifier() <em>Identifier</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getIdentifier()
* @generated
* @ordered
*/
protected String identifier = IDENTIFIER_EDEFAULT;
/**
* The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getDescription()
* @generated
* @ordered
*/
protected static final String DESCRIPTION_EDEFAULT = null;
/**
* The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getDescription()
* @generated
* @ordered
*/
protected String description = DESCRIPTION_EDEFAULT;
/**
* The default value of the '{@link #getCreator() <em>Creator</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getCreator()
* @generated
* @ordered
*/
protected static final String CREATOR_EDEFAULT = null;
/**
* The cached value of the '{@link #getCreator() <em>Creator</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getCreator()
* @generated
* @ordered
*/
protected String creator = CREATOR_EDEFAULT;
/**
* The default value of the '{@link #getDate() <em>Date</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getDate()
* @generated
* @ordered
*/
protected static final String DATE_EDEFAULT = null;
/**
* The cached value of the '{@link #getDate() <em>Date</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getDate()
* @generated
* @ordered
*/
protected String date = DATE_EDEFAULT;
/**
* The default value of the '{@link #getFormat() <em>Format</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getFormat()
* @generated
* @ordered
*/
protected static final String FORMAT_EDEFAULT = null;
/**
* The cached value of the '{@link #getFormat() <em>Format</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getFormat()
* @generated
* @ordered
*/
protected String format = FORMAT_EDEFAULT;
/**
* The default value of the '{@link #getPublisher() <em>Publisher</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getPublisher()
* @generated
* @ordered
*/
protected static final String PUBLISHER_EDEFAULT = null;
/**
* The cached value of the '{@link #getPublisher() <em>Publisher</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getPublisher()
* @generated
* @ordered
*/
protected String publisher = PUBLISHER_EDEFAULT;
/**
* The default value of the '{@link #getCoverage() <em>Coverage</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getCoverage()
* @generated
* @ordered
*/
protected static final String COVERAGE_EDEFAULT = null;
/**
* The cached value of the '{@link #getCoverage() <em>Coverage</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getCoverage()
* @generated
* @ordered
*/
protected String coverage = COVERAGE_EDEFAULT;
/**
* The default value of the '{@link #getContributor() <em>Contributor</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getContributor()
* @generated
* @ordered
*/
protected static final String CONTRIBUTOR_EDEFAULT = null;
/**
* The cached value of the '{@link #getContributor() <em>Contributor</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getContributor()
* @generated
* @ordered
*/
protected String contributor = CONTRIBUTOR_EDEFAULT;
/**
* The default value of the '{@link #getRelation() <em>Relation</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getRelation()
* @generated
* @ordered
*/
protected static final String RELATION_EDEFAULT = null;
/**
* The cached value of the '{@link #getRelation() <em>Relation</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getRelation()
* @generated
* @ordered
*/
protected String relation = RELATION_EDEFAULT;
/**
* The default value of the '{@link #getRights() <em>Rights</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getRights()
* @generated
* @ordered
*/
protected static final String RIGHTS_EDEFAULT = null;
/**
* The cached value of the '{@link #getRights() <em>Rights</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getRights()
* @generated
* @ordered
*/
protected String rights = RIGHTS_EDEFAULT;
/**
* The default value of the '{@link #getSource() <em>Source</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getSource()
* @generated
* @ordered
*/
protected static final String SOURCE_EDEFAULT = null;
/**
* The cached value of the '{@link #getSource() <em>Source</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getSource()
* @generated
* @ordered
*/
protected String source = SOURCE_EDEFAULT;
/**
* The default value of the '{@link #getSubject() <em>Subject</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getSubject()
* @generated
* @ordered
*/
protected static final String SUBJECT_EDEFAULT = null;
/**
* The cached value of the '{@link #getSubject() <em>Subject</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getSubject()
* @generated
* @ordered
*/
protected String subject = SUBJECT_EDEFAULT;
/**
* The default value of the '{@link #getType() <em>Type</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getType()
* @generated
* @ordered
*/
protected static final String TYPE_EDEFAULT = null;
/**
* The cached value of the '{@link #getType() <em>Type</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getType()
* @generated
* @ordered
*/
protected String type = TYPE_EDEFAULT;
/**
* The default value of the '{@link #getLanguage() <em>Language</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getLanguage()
* @generated
* @ordered
*/
protected static final String LANGUAGE_EDEFAULT = null;
/**
* The cached value of the '{@link #getLanguage() <em>Language</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getLanguage()
* @generated
* @ordered
*/
protected String language = LANGUAGE_EDEFAULT;
/**
* The default value of the '{@link #getBibliographicCitation() <em>Bibliographic Citation</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getBibliographicCitation()
* @generated
* @ordered
*/
protected static final String BIBLIOGRAPHIC_CITATION_EDEFAULT = null;
/**
* The cached value of the '{@link #getBibliographicCitation() <em>Bibliographic Citation</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getBibliographicCitation()
* @generated
* @ordered
*/
protected String bibliographicCitation = BIBLIOGRAPHIC_CITATION_EDEFAULT;
/**
* The default value of the '{@link #getCreated() <em>Created</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getCreated()
* @generated
* @ordered
*/
protected static final String CREATED_EDEFAULT = null;
/**
* The cached value of the '{@link #getCreated() <em>Created</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getCreated()
* @generated
* @ordered
*/
protected String created = CREATED_EDEFAULT;
/**
* The default value of the '{@link #getLicense() <em>License</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getLicense()
* @generated
* @ordered
*/
protected static final String LICENSE_EDEFAULT = null;
/**
* The cached value of the '{@link #getLicense() <em>License</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getLicense()
* @generated
* @ordered
*/
protected String license = LICENSE_EDEFAULT;
/**
* The default value of the '{@link #getRequired() <em>Required</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getRequired()
* @generated
* @ordered
*/
protected static final String REQUIRED_EDEFAULT = null;
/**
* The cached value of the '{@link #getRequired() <em>Required</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getRequired()
* @generated
* @ordered
*/
protected String required = REQUIRED_EDEFAULT;
/**
* The default value of the '{@link #getSpatial() <em>Spatial</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getSpatial()
* @generated
* @ordered
*/
protected static final String SPATIAL_EDEFAULT = null;
/**
* The cached value of the '{@link #getSpatial() <em>Spatial</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getSpatial()
* @generated
* @ordered
*/
protected String spatial = SPATIAL_EDEFAULT;
/**
* The default value of the '{@link #getValid() <em>Valid</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getValid()
* @generated
* @ordered
*/
protected static final String VALID_EDEFAULT = null;
/**
* This is the string used in the {@link #valid} attribute to specify the
* starting date of the valid date range.
*/
public static final String START = "start=";
/**
* This is the string used in the {@link #valid} attribute to specify the
* ending date of the valid date range.
*/
public static final String END = "end=";
/**
* The cached value of the '{@link #getValid() <em>Valid</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getValid()
* @generated
* @ordered
*/
protected String valid = VALID_EDEFAULT;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
protected DublinCoreImpl() {
super();
}
/**
* This constructor is used to create and initialize a Dublin Core instance
* from an IConfigurationElement instance. The configuration element is
* extracted from the extension definition in the plugin.xml file of a
* plug-in that is providing an Identifiable. This is used by the class
* IdentifiableDelegate in the class
* org.eclipse.stem.ui.views.IdentifiablePluginView to create a "proxy"
* representation of the Dublin Core of the Identifiable from the
* configuration element so that the Identifiable itself does not have to be
* loaded.
*
* @param configElement
* the configuration element from the plugin.xml file
*
* @generated NOT
*/
public DublinCoreImpl(IConfigurationElement configElement) {
title = configElement.getAttribute("title");
creator = configElement.getAttribute("creator");
subject = configElement.getAttribute("subject");
description = configElement.getAttribute("description");
publisher = configElement.getAttribute("publisher");
contributor = configElement.getAttribute("contributor");
date = configElement.getAttribute("date");
type = configElement.getAttribute("type");
format = configElement.getAttribute("format");
identifier = configElement.getAttribute("identifier");
source = configElement.getAttribute("source");
language = configElement.getAttribute("language");
relation = configElement.getAttribute("relation");
coverage = configElement.getAttribute("coverage");
bibliographicCitation = configElement
.getAttribute("bibliographicCitation");
created = configElement.getAttribute("created");
license = configElement.getAttribute("license");
required = configElement.getAttribute("required");
spatial = configElement.getAttribute("spatial");
valid = configElement.getAttribute("valid");
} // DublinCoreImpl
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return CommonPackage.Literals.DUBLIN_CORE;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getTitle() {
return title;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setTitle(String newTitle) {
String oldTitle = title;
title = newTitle;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__TITLE, oldTitle, title));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getCreator() {
return creator;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setCreator(String newCreator) {
String oldCreator = creator;
creator = newCreator;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__CREATOR, oldCreator, creator));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getSubject() {
return subject;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setSubject(String newSubject) {
String oldSubject = subject;
subject = newSubject;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__SUBJECT, oldSubject, subject));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getDescription() {
return description;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setDescription(String newDescription) {
String oldDescription = description;
description = newDescription;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__DESCRIPTION, oldDescription, description));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getPublisher() {
return publisher;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setPublisher(String newPublisher) {
String oldPublisher = publisher;
publisher = newPublisher;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__PUBLISHER, oldPublisher, publisher));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getContributor() {
return contributor;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setContributor(String newContributor) {
String oldContributor = contributor;
contributor = newContributor;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__CONTRIBUTOR, oldContributor, contributor));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getDate() {
return date;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setDate(String newDate) {
String oldDate = date;
date = newDate;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__DATE, oldDate, date));
}
/**
* @see org.eclipse.stem.common.DublinCore#setDate(java.util.Date)
*/
public void setDate(Date date) {
setDate(createISO8601DateString(date));
} // setDate
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getType() {
return type;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setType(String newType) {
String oldType = type;
type = newType;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__TYPE, oldType, type));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getFormat() {
return format;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setFormat(String newFormat) {
String oldFormat = format;
format = newFormat;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__FORMAT, oldFormat, format));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getIdentifier() {
return identifier;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setIdentifier(String newIdentifier) {
String oldIdentifier = identifier;
identifier = newIdentifier;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__IDENTIFIER, oldIdentifier, identifier));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getSource() {
return source;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setSource(String newSource) {
String oldSource = source;
source = newSource;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__SOURCE, oldSource, source));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getLanguage() {
return language;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setLanguage(String newLanguage) {
String oldLanguage = language;
language = newLanguage;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__LANGUAGE, oldLanguage, language));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getRelation() {
return relation;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setRelation(String newRelation) {
String oldRelation = relation;
relation = newRelation;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__RELATION, oldRelation, relation));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getCoverage() {
return coverage;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setCoverage(String newCoverage) {
String oldCoverage = coverage;
coverage = newCoverage;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__COVERAGE, oldCoverage, coverage));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getRights() {
return rights;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setRights(String newRights) {
String oldRights = rights;
rights = newRights;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__RIGHTS, oldRights, rights));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getBibliographicCitation() {
return bibliographicCitation;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setBibliographicCitation(String newBibliographicCitation) {
String oldBibliographicCitation = bibliographicCitation;
bibliographicCitation = newBibliographicCitation;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__BIBLIOGRAPHIC_CITATION, oldBibliographicCitation, bibliographicCitation));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getCreated() {
return created;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setCreated(String newCreated) {
String oldCreated = created;
created = newCreated;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__CREATED, oldCreated, created));
}
/**
* @see org.eclipse.stem.common.DublinCore#setCreated(java.util.Date)
*/
public void setCreated(Date date) {
setCreated(createISO8601DateString(date));
} // setCreated
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getLicense() {
return license;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setLicense(String newLicense) {
String oldLicense = license;
license = newLicense;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__LICENSE, oldLicense, license));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getRequired() {
return required;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setRequired(String newRequired) {
String oldRequired = required;
required = newRequired;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__REQUIRED, oldRequired, required));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getSpatial() {
return spatial;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setSpatial(String newSpatial) {
String oldSpatial = spatial;
spatial = newSpatial;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__SPATIAL, oldSpatial, spatial));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public String getValid() {
return valid;
}
/**
* @see org.eclipse.stem.core.common.DublinCore#getValidEndDate()
*/
public Date getValidEndDate() {
return getValidEndDate(getValid());
} // getValidEndDate
/**
* @see org.eclipse.stem.core.common.DublinCore#getValidEndDate()
*/
@SuppressWarnings("null")
public static Date getValidEndDate(final String validValue) {
Date retValue = null;
// Is the valid value set?
if (validValue != null) {
// Yes
final int dateIndex = validValue.indexOf(END);
// Is the end date specified?
if (dateIndex >= 0) {
// Yes
try {
retValue = createDateFromISO8601DateString(validValue
.substring(dateIndex + END.length()));
} catch (ParseException e) {
retValue = null;
}
} // if
} // if
return retValue;
} // getValidEndDate
/**
* @see org.eclipse.stem.core.common.DublinCore#isValidBefore(DublinCore)
*/
@SuppressWarnings("null")
public boolean isValidBefore(DublinCore dublinCore) {
final Date ourStartDate = getValidStartDate();
final Date otherStartDate = dublinCore != null ? dublinCore
.getValidStartDate() : null;
boolean retValue = (dublinCore == null) || (otherStartDate == null);
retValue = retValue
|| (ourStartDate != null && otherStartDate.after(ourStartDate));
return retValue;
} // isValidBefore
public Date[] computeValidDateRangeOverlap(DublinCore dublinCore) {
Date[] retValue = null;
final Date ourStartDate = getValidStartDate();
final Date ourEndDate = getValidEndDate();
final Date otherStartDate = dublinCore.getValidStartDate();
final Date otherEndDate = dublinCore.getValidEndDate();
Date newStartDate = ourStartDate;
Date newEndDate = ourEndDate;
// Figure out which start date is oldest
// Do we have a start date?
if (ourStartDate != null) {
// Yes
// How about the other start date?
if (otherStartDate != null) {
// Yes
// Is the other start date after ours?
if (otherStartDate.after(ourStartDate)) {
// Yes
newStartDate = otherStartDate;
}
} // if other start date?
} // if start date?
else {
// No
newStartDate = otherStartDate;
}
// Figure out which end data is youngest
// Do we have an end date?
if (ourEndDate != null) {
// Yes
// How about the other end date?
if (otherEndDate != null) {
// Yes
// Is the other end date before ours?
if (otherEndDate.before(ourEndDate)) {
// Yes
newEndDate = otherEndDate;
}
} // if the other end date?
} // if we have an end date
else {
// No
newEndDate = otherEndDate;
}
// At this point the newStartDate and newEndDate could be null. However,
// if they are not null, we need to check to make sure that the start
// comes before the end.
// Do we have a new start date?
if (newStartDate != null) {
// Yes
// How about the new end date?
if (newEndDate != null) {
// Yes
// Does the new start date come before the new end date?
if (newStartDate.before(newEndDate)) {
// Yes
retValue = new Date[] {newStartDate,newEndDate};
}
}
} // if new start date
return retValue;
} // computeValidDateRangeOverlap
/**
* @param validValue
* @return <code>true</code> if the end date in the valid string does not
* exist, or if it does, if it is properly formatted,
* <code>false</code> otherwise.
*/
public static boolean isValidEndDateValid(final String validValue) {
boolean retValue = true;
// Is the valid value set?
if (validValue != null) {
// Yes
try {
final String endPart = validValue.substring(
"start=yyyy-DD-mm;".length()).trim();
final int dateIndex = endPart.indexOf(END);
// Was there just white space?
if (endPart.equals("")) {
// Yes
return true;
}
// Does it end with a ";"?
if (!endPart.endsWith(";")) {
// No
return false;
}
// Is it the right length?
if (endPart.length() != END.length() + "yyyy-dd-mm;".length()) {
// No
return false;
}
// Is the end date specified?
if (dateIndex == 0) {
// Yes
// If we throw a parse exception we'll catch it below and return false
createDateFromISO8601DateString(endPart.substring( END.length()));
retValue = true;
} // if
else {
retValue = false;
}
} catch (ParseException e) {
retValue = false;
} catch (StringIndexOutOfBoundsException e) {
retValue = false;
}
} // if
return retValue;
} // isValidEndDateValid
/**
* @see org.eclipse.stem.core.common.DublinCore#getValidEndDate()
*/
public Date getValidStartDate() {
return getValidStartDate(getValid());
} // getValidStartDate
/**
* @see org.eclipse.stem.core.common.DublinCore#getValidStartDate()
*/
@SuppressWarnings("null")
public static Date getValidStartDate(final String validValue) {
Date retValue = null;
// Is the valid value set?
if (validValue != null) {
// Yes
final int dateIndex = validValue.indexOf(START) + START.length();
try {
retValue = createDateFromISO8601DateString(validValue
.substring(dateIndex));
} catch (ParseException e) {
retValue = null;
}
}
return retValue;
} // getValidStartDate
/**
* @param validValue
* @return <code>true</code> if the start date in the valid string exists
* and is properly formatted
*/
public static boolean isValidStartDateValid(final String validValue) {
boolean retValue = false;
// Is the valid value set?
if (validValue != null) {
// Yes
try {
final String trimedValidValue = validValue.trim();
final int dateIndex = validValue.indexOf(START)
+ START.length();
final String extractedDate = trimedValidValue.substring(
dateIndex, "start=YYYY-DD-MM;".length());
// Is there a ";" on the end of the date?
if (!extractedDate.endsWith(";")) {
// No
return false;
}
// If we throw a parse exception, we'll catch it below and return false
createDateFromISO8601DateString(extractedDate);
retValue = true;
} catch (ParseException e) {
retValue = false;
} catch (StringIndexOutOfBoundsException e) {
retValue = false;
}
}
return retValue;
} // isValidStartDateValid
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public void setValid(String newValid) {
String oldValid = valid;
valid = newValid;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CommonPackage.DUBLIN_CORE__VALID, oldValid, valid));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated NOT
*/
public DublinCore populate() {
setCreated(Calendar.getInstance().getTime());
setCreator(System.getProperty("user.name"));
return this;
} // populate
/**
* @see org.eclipse.stem.common.DublinCore#setValid(java.util.Date,
* java.util.Date)
*/
public void setValid(final Date startDate, final Date endDate) {
final StringBuilder sb = new StringBuilder(START);
sb.append(createISO8601DateString(startDate));
sb.append("; ");
sb.append(END);
sb.append(createISO8601DateString(endDate));
sb.append(";");
setValid(sb.toString());
} // setValid
/**
* @see org.eclipse.stem.common.DublinCore#setValid(java.util.Date)
*/
public void setValid(final Date startDate) {
final StringBuilder sb = new StringBuilder(START);
sb.append(createISO8601DateString(startDate));
sb.append(";");
setValid(sb.toString());
} // setValid
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case CommonPackage.DUBLIN_CORE__TITLE:
return getTitle();
case CommonPackage.DUBLIN_CORE__IDENTIFIER:
return getIdentifier();
case CommonPackage.DUBLIN_CORE__DESCRIPTION:
return getDescription();
case CommonPackage.DUBLIN_CORE__CREATOR:
return getCreator();
case CommonPackage.DUBLIN_CORE__DATE:
return getDate();
case CommonPackage.DUBLIN_CORE__FORMAT:
return getFormat();
case CommonPackage.DUBLIN_CORE__PUBLISHER:
return getPublisher();
case CommonPackage.DUBLIN_CORE__COVERAGE:
return getCoverage();
case CommonPackage.DUBLIN_CORE__CONTRIBUTOR:
return getContributor();
case CommonPackage.DUBLIN_CORE__RELATION:
return getRelation();
case CommonPackage.DUBLIN_CORE__RIGHTS:
return getRights();
case CommonPackage.DUBLIN_CORE__SOURCE:
return getSource();
case CommonPackage.DUBLIN_CORE__SUBJECT:
return getSubject();
case CommonPackage.DUBLIN_CORE__TYPE:
return getType();
case CommonPackage.DUBLIN_CORE__LANGUAGE:
return getLanguage();
case CommonPackage.DUBLIN_CORE__BIBLIOGRAPHIC_CITATION:
return getBibliographicCitation();
case CommonPackage.DUBLIN_CORE__CREATED:
return getCreated();
case CommonPackage.DUBLIN_CORE__LICENSE:
return getLicense();
case CommonPackage.DUBLIN_CORE__REQUIRED:
return getRequired();
case CommonPackage.DUBLIN_CORE__SPATIAL:
return getSpatial();
case CommonPackage.DUBLIN_CORE__VALID:
return getValid();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case CommonPackage.DUBLIN_CORE__TITLE:
setTitle((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__IDENTIFIER:
setIdentifier((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__DESCRIPTION:
setDescription((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__CREATOR:
setCreator((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__DATE:
setDate((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__FORMAT:
setFormat((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__PUBLISHER:
setPublisher((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__COVERAGE:
setCoverage((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__CONTRIBUTOR:
setContributor((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__RELATION:
setRelation((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__RIGHTS:
setRights((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__SOURCE:
setSource((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__SUBJECT:
setSubject((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__TYPE:
setType((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__LANGUAGE:
setLanguage((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__BIBLIOGRAPHIC_CITATION:
setBibliographicCitation((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__CREATED:
setCreated((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__LICENSE:
setLicense((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__REQUIRED:
setRequired((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__SPATIAL:
setSpatial((String)newValue);
return;
case CommonPackage.DUBLIN_CORE__VALID:
setValid((String)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case CommonPackage.DUBLIN_CORE__TITLE:
setTitle(TITLE_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__IDENTIFIER:
setIdentifier(IDENTIFIER_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__DESCRIPTION:
setDescription(DESCRIPTION_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__CREATOR:
setCreator(CREATOR_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__DATE:
setDate(DATE_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__FORMAT:
setFormat(FORMAT_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__PUBLISHER:
setPublisher(PUBLISHER_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__COVERAGE:
setCoverage(COVERAGE_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__CONTRIBUTOR:
setContributor(CONTRIBUTOR_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__RELATION:
setRelation(RELATION_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__RIGHTS:
setRights(RIGHTS_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__SOURCE:
setSource(SOURCE_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__SUBJECT:
setSubject(SUBJECT_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__TYPE:
setType(TYPE_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__LANGUAGE:
setLanguage(LANGUAGE_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__BIBLIOGRAPHIC_CITATION:
setBibliographicCitation(BIBLIOGRAPHIC_CITATION_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__CREATED:
setCreated(CREATED_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__LICENSE:
setLicense(LICENSE_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__REQUIRED:
setRequired(REQUIRED_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__SPATIAL:
setSpatial(SPATIAL_EDEFAULT);
return;
case CommonPackage.DUBLIN_CORE__VALID:
setValid(VALID_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case CommonPackage.DUBLIN_CORE__TITLE:
return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
case CommonPackage.DUBLIN_CORE__IDENTIFIER:
return IDENTIFIER_EDEFAULT == null ? identifier != null : !IDENTIFIER_EDEFAULT.equals(identifier);
case CommonPackage.DUBLIN_CORE__DESCRIPTION:
return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
case CommonPackage.DUBLIN_CORE__CREATOR:
return CREATOR_EDEFAULT == null ? creator != null : !CREATOR_EDEFAULT.equals(creator);
case CommonPackage.DUBLIN_CORE__DATE:
return DATE_EDEFAULT == null ? date != null : !DATE_EDEFAULT.equals(date);
case CommonPackage.DUBLIN_CORE__FORMAT:
return FORMAT_EDEFAULT == null ? format != null : !FORMAT_EDEFAULT.equals(format);
case CommonPackage.DUBLIN_CORE__PUBLISHER:
return PUBLISHER_EDEFAULT == null ? publisher != null : !PUBLISHER_EDEFAULT.equals(publisher);
case CommonPackage.DUBLIN_CORE__COVERAGE:
return COVERAGE_EDEFAULT == null ? coverage != null : !COVERAGE_EDEFAULT.equals(coverage);
case CommonPackage.DUBLIN_CORE__CONTRIBUTOR:
return CONTRIBUTOR_EDEFAULT == null ? contributor != null : !CONTRIBUTOR_EDEFAULT.equals(contributor);
case CommonPackage.DUBLIN_CORE__RELATION:
return RELATION_EDEFAULT == null ? relation != null : !RELATION_EDEFAULT.equals(relation);
case CommonPackage.DUBLIN_CORE__RIGHTS:
return RIGHTS_EDEFAULT == null ? rights != null : !RIGHTS_EDEFAULT.equals(rights);
case CommonPackage.DUBLIN_CORE__SOURCE:
return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source);
case CommonPackage.DUBLIN_CORE__SUBJECT:
return SUBJECT_EDEFAULT == null ? subject != null : !SUBJECT_EDEFAULT.equals(subject);
case CommonPackage.DUBLIN_CORE__TYPE:
return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
case CommonPackage.DUBLIN_CORE__LANGUAGE:
return LANGUAGE_EDEFAULT == null ? language != null : !LANGUAGE_EDEFAULT.equals(language);
case CommonPackage.DUBLIN_CORE__BIBLIOGRAPHIC_CITATION:
return BIBLIOGRAPHIC_CITATION_EDEFAULT == null ? bibliographicCitation != null : !BIBLIOGRAPHIC_CITATION_EDEFAULT.equals(bibliographicCitation);
case CommonPackage.DUBLIN_CORE__CREATED:
return CREATED_EDEFAULT == null ? created != null : !CREATED_EDEFAULT.equals(created);
case CommonPackage.DUBLIN_CORE__LICENSE:
return LICENSE_EDEFAULT == null ? license != null : !LICENSE_EDEFAULT.equals(license);
case CommonPackage.DUBLIN_CORE__REQUIRED:
return REQUIRED_EDEFAULT == null ? required != null : !REQUIRED_EDEFAULT.equals(required);
case CommonPackage.DUBLIN_CORE__SPATIAL:
return SPATIAL_EDEFAULT == null ? spatial != null : !SPATIAL_EDEFAULT.equals(spatial);
case CommonPackage.DUBLIN_CORE__VALID:
return VALID_EDEFAULT == null ? valid != null : !VALID_EDEFAULT.equals(valid);
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated NOT
*/
@Override
public String toString() {
if (eIsProxy())
return super.toString();
final StringBuilder result = new StringBuilder();
if (identifier != null && !identifier.equals("")) {
result.append("identifier=\"");
result.append(identifier.trim());
result.append("\" ");
}
if (type != null && !type.equals("")) {
result.append("type=\"");
result.append(type.trim());
result.append("\" ");
}
if (title != null && !title.equals("")) {
result.append("title=\"");
result.append(title.trim());
result.append("\" ");
}
if (creator != null && !creator.equals("")) {
result.append("creator=\"");
result.append(creator.trim());
result.append("\" ");
}
if (subject != null && !subject.equals("")) {
result.append("subject=\"");
result.append(subject.trim());
result.append("\" ");
}
if (description != null && !description.equals("")) {
result.append("description=\"");
result.append(description.trim());
result.append("\" ");
}
if (publisher != null && !publisher.equals("")) {
result.append("publisher=\"");
result.append(publisher.trim());
result.append("\" ");
}
if (contributor != null && !contributor.equals("")) {
result.append("contributor=\"");
result.append(contributor.trim());
result.append("\" ");
}
if (date != null && !date.equals("")) {
result.append("date=\"");
result.append(date.trim());
result.append("\" ");
}
if (format != null && !format.equals("")) {
result.append("format=\"");
result.append(format.trim());
result.append("\" ");
}
if (source != null && !source.equals("")) {
result.append("source=\"");
result.append(source.trim());
result.append("\" ");
}
if (language != null && !language.equals("")) {
result.append("language=\"");
result.append(language.trim());
result.append("\" ");
}
if (relation != null && !relation.equals("")) {
result.append("relation=\"");
result.append(relation.trim());
result.append("\" ");
}
if (coverage != null && !coverage.equals("")) {
result.append("coverage=\"");
result.append(coverage.trim());
result.append("\" ");
}
if (rights != null && !rights.equals("")) {
result.append("rights=\"");
result.append(rights.trim());
result.append("\" ");
}
if (bibliographicCitation != null && !bibliographicCitation.equals("")) {
result.append("bibliographicCitation=\"");
result.append(bibliographicCitation.trim());
result.append("\" ");
}
if (created != null && !created.equals("")) {
result.append("created=\"");
result.append(created.trim());
result.append("\" ");
}
if (license != null && !license.equals("")) {
result.append("license=\"");
result.append(license.trim());
result.append("\" ");
}
if (required != null && !required.equals("")) {
result.append("required=\"");
result.append(required.trim());
result.append("\" ");
}
if (spatial != null && !spatial.equals("")) {
result.append("spatial=\"");
result.append(spatial.trim());
result.append("\" ");
}
if (valid != null && !valid.equals("")) {
result.append("valid=\"");
result.append(valid.trim());
result.append("\" ");
}
return result.toString();
} // toString
/**
* Create a date string that conforms to ISO&nbsp;8601 <a
* href="http://www.w3.org/TR/NOTE-datetime">
* http://www.w3.org/TR/NOTE-datetime</a>.
* <ul>
* <li>Example:</li>
* 2006-03-29
* </ul>
*
* @see #getDate()
* @see #getCreated()
* @see #getValid()
*/
public static String createISO8601DateString(final Date date) {
return (new SimpleDateFormat("yyyy-MM-dd")).format(date);
} // createISO8601DateString
/**
* Create a Date from a string that conforms to ISO&nbsp;8601 <a
* href="http://www.w3.org/TR/NOTE-datetime">
* http://www.w3.org/TR/NOTE-datetime</a>.
* <ul>
* <li>Example:</li>
* 2006-03-29
* </ul>
*
* @throws ParseException
* if the date string is not of the format "yyyy-MM-dd"
* @see #getDate()
* @see #getCreated()
* @see #getValid()
*/
public static Date createDateFromISO8601DateString(
final String iso8601DateString) throws ParseException {
return (new SimpleDateFormat("yyyy-MM-dd")).parse(iso8601DateString);
} // createDateFromISO8601DateString
} // DublinCoreImpl