package com.github.anno4j.model.impl.collection; import com.github.anno4j.model.impl.ResourceObject; import com.github.anno4j.model.namespaces.AS; import com.github.anno4j.model.namespaces.RDFS; import org.openrdf.annotations.Iri; import java.util.Set; /** * Refers to http://www.w3.org/ns/activitystreams#OrderedCollection. * * It is often useful to be able to collect Annotations together into a list, called an Annotation Collection. * This list, which is always ordered, serves as a means to refer to the Annotations that are contained within it, * and to maintain any information about the Collection itself. */ @Iri(AS.ORDERED_COLLECTION) public interface AnnotationCollection extends ResourceObject { /** * Sets the Set of values for the http://www.w3.org/2000/01/rdf-schema#label relationship. * * A human readable label intended as the name of the Collection. * * @param labels The Set of values to set for the http://www.w3.org/2000/01/rdf-schema#label relationship. */ @Iri(RDFS.LABEL) void setLabels(Set<String> labels); /** * Gets the Set of values currently defined for the http://www.w3.org/2000/01/rdf-schema#label relationship. * * A human readable label intended as the name of the Collection. * * @return The Set of values currently defined for the http://www.w3.org/2000/01/rdf-schema#label relationship. */ @Iri(RDFS.LABEL) Set<String> getLabels(); /** * Adds a single value to the currently defined Set for the http://www.w3.org/2000/01/rdf-schema#label relationship. * * @param label The single label to add to the currently defined values of the * http://www.w3.org/2000/01/rdf-schema#label relationship. */ void addLabel(String label); /** * Sets the value for the http://www.w3.org/ns/activitystreams#totalItems relationship. * * The total number of Annotations in the Collection. * * @param total The value to set for the http://www.w3.org/ns/activitystreams#totalItems relationship. */ @Iri(AS.TOTAL_ITEMS) void setTotal(int total); /** * Gets the currently defined value for the http://www.w3.org/ns/activitystreams#totalItems relationship. * * The total number of Annotations in the Collection. * * @return The value currently defined for the http://www.w3.org/ns/activitystreams#totalItems relationship. */ @Iri(AS.TOTAL_ITEMS) int getTotal(); /** * Sets the value of the http://www.w3.org/ns/activitystreams#first relationship. * * The first page of Annotations that are included within the Collection. * * @param page The AnnotationPage to define the http://www.w3.org/ns/activitystreams#first relationship point to. */ @Iri(AS.FIRST) void setFirstPage(AnnotationPage page); /** * Gets the AnnotationPage currently defined at the http://www.w3.org/ns/activitystreams#first relationship. * * The first page of Annotations that are included within the Collection. * * @return The AnnotationPage currently defined for the http://www.w3.org/ns/activitystreams#first relationship. */ @Iri(AS.FIRST) AnnotationPage getFirstPage(); /** * Sets the value for the http://www.w3.org/ns/activitystreams#last relationship. * * The last page of Annotations that are included within the Collection. * * @param page The AnnotationPage to set for the http://www.w3.org/ns/activitystreams#last relationship. */ @Iri(AS.LAST) void setLastPage(AnnotationPage page); /** * Gets the AnnotationPage currently defined for the http://www.w3.org/ns/activitystreams#last relationship. * * The last page of Annotations that are included within the Collection. * * @return The AnnotationPage currently defined for the http://www.w3.org/ns/activitystreams#last relationship. */ @Iri(AS.LAST) AnnotationPage getLastPage(); }