package com.github.anno4j.model.impl.state; import com.github.anno4j.model.State; import com.github.anno4j.model.impl.ResourceObject; import com.github.anno4j.model.namespaces.OADM; import org.openrdf.annotations.Iri; import java.util.Set; /** * Refers to http://www.w3.org/ns/oa#TimeState. * A TimeState records the time at which the resource's state is appropriate for the Annotation, typically the time * that the Annotation was created and/or a link to a persistent copy of the current version. */ @Iri(OADM.TIME_STATE) public interface TimeState extends State { /** * Sets the value for the http://www.w3.org/ns/oa#sourceDateStart relationship. * * The start timestamp of the interval over which the Source resource should be interpreted as being applicable * to the Annotation. * * @param sourceDateStart The value to set for the http://www.w3.org/ns/oa#sourceDateStart relationship. */ @Iri(OADM.SOURCE_DATE_START) void setSourceDateStart(String sourceDateStart); /** * Gets the value currently set for the http://www.w3.org/ns/oa#sourceDateStart relationship. * * The start timestamp of the interval over which the Source resource should be interpreted as being applicable * to the Annotation. * * @return The value currently set for the http://www.w3.org/ns/oa#sourceDateStart relationship. */ @Iri(OADM.SOURCE_DATE_START) String getSourceDateStart(); /** * Sets the value for the http://www.w3.org/ns/oa#sourceDateEnd relationship. * * The end timestamp of the interval over which the Source resource should be interpreted as being applicable * to the Annotation. * * @param sourceDateEnd The value to set for the http://www.w3.org/ns/oa#sourceDateEnd relationship. */ @Iri(OADM.SOURCE_DATE_END) void setSourceDateEnd(String sourceDateEnd); /** * Gets the value currently set for the http://www.w3.org/ns/oa#sourceDateEnd relationship. * * The end timestamp of the interval over which the Source resource should be interpreted as being applicable * to the Annotation. * * @return The value currently defined for the http://www.w3.org/ns/oa#sourceDateEnd relationship. */ @Iri(OADM.SOURCE_DATE_END) String getSourceDateEnd(); /** * Sets the values for the http://www.w3.org/ns/oa#sourceDate relationship. * * The timestamp at which the Source resource should be interpreted as being applicable to the Annotation. * * @param sourceDates The Set of values to set for the http://www.w3.org/ns/oa#sourceDate relationship. */ @Iri(OADM.SOURCE_DATE) void setSourceDates(Set<String> sourceDates); /** * Gets the values currently defined for the http://www.w3.org/ns/oa#sourceDate relationship. * * The timestamp at which the Source resource should be interpreted as being applicable to the Annotation. * * @return The Set of values currently defined for the http://www.w3.org/ns/oa#sourceDate relationship. */ @Iri(OADM.SOURCE_DATE) Set<String> getSourceDates(); /** * Adds a single value to the Set currently defined for the http://www.w3.org/ns/oa#sourceDate relationship. * * @param sourceDate The value to add to the Set of currently defined http://www.w3.org/ns/oa#sourceDate * relationships. */ void addSourceDate(String sourceDate); /** * Sets the values for the http://www.w3.org/ns/oa#cachedSource relationship. * * A object of the relationship is a copy of the Source resource's representation, appropriate for the Annotation. * * @param cachedSources The value to set for the http://www.w3.org/ns/oa#cachedSource relationship. */ @Iri(OADM.CACHED_SOURCE) void setCachedSources(Set<ResourceObject> cachedSources); /** * Gets the values currently defined for the http://www.w3.org/ns/oa#cachedSource relationship. * * A object of the relationship is a copy of the Source resource's representation, appropriate for the Annotation. * * @return The set of values currently defined for the http://www.w3.org/ns/oa#cachedSource relationship. */ @Iri(OADM.CACHED_SOURCE) Set<ResourceObject> getCachedSources(); /** * Adds a single value to the Set currently defined for the http://www.w3.org/ns/oa#cachedSource relationship. * * @param cachedSource The value to add to the http://www.w3.org/ns/oa#cachedSource relationship. */ void addCachedSource(ResourceObject cachedSource); }