package de.digitalcollections.iiif.presentation.model.impl.v2;
import java.net.URI;
import java.util.List;
import de.digitalcollections.iiif.presentation.model.api.v2.Canvas;
import de.digitalcollections.iiif.presentation.model.api.v2.Metadata;
import de.digitalcollections.iiif.presentation.model.api.v2.PropertyValue;
import de.digitalcollections.iiif.presentation.model.api.v2.Sequence;
import de.digitalcollections.iiif.presentation.model.api.v2.Thumbnail;
public class SequenceImpl extends AbstractIiifResourceImpl implements Sequence {
private List<Canvas> canvases;
private PropertyValue description; // optional
private PropertyValue label; // optional
private List<Metadata> metadata; // optional
private String startCanvas; // optional
private Thumbnail thumbnail; // optional
private String viewingDirection; // optional
private String viewingHint; // optional
public SequenceImpl() {
type = "sc:Sequence";
}
/**
* @param label A sequence may have a label, and if there are multiple sequences in a single manifest then they must
* have labels. The label should briefly convey the nature of sequence, such as “Current Page Order”.
*/
public SequenceImpl(PropertyValue label) {
this();
assert label != null;
this.label = label;
}
/**
* Convenience constructor (as id is optional)
*
* @param id unique id of resource
* @param label The label should briefly convey the nature of sequence, such as “Current Page Order”.
*/
public SequenceImpl(URI id, PropertyValue label) {
this(label);
this.id = id;
}
@Override
public List<Canvas> getCanvases() {
return canvases;
}
@Override
public void setCanvases(List<Canvas> canvases) {
this.canvases = canvases;
}
@Override
public PropertyValue getDescription() {
return description;
}
@Override
public void setDescription(PropertyValue description) {
this.description = description;
}
@Override
public void setId(URI id) {
this.id = id;
}
@Override
public PropertyValue getLabel() {
return label;
}
@Override
public void setLabel(PropertyValue label) {
this.label = label;
}
@Override
public List<Metadata> getMetadata() {
return metadata;
}
@Override
public void setMetadata(List<Metadata> metadata) {
this.metadata = metadata;
}
@Override
public String getStartCanvas() {
return startCanvas;
}
@Override
public void setStartCanvas(String startCanvas) {
this.startCanvas = startCanvas;
}
@Override
public Thumbnail getThumbnail() {
return thumbnail;
}
@Override
public void setThumbnail(Thumbnail thumbnail) {
this.thumbnail = thumbnail;
}
@Override
public String getViewingDirection() {
return viewingDirection;
}
@Override
public void setViewingDirection(String viewingDirection) {
this.viewingDirection = viewingDirection;
}
@Override
public String getViewingHint() {
return viewingHint;
}
@Override
public void setViewingHint(String viewingHint) {
this.viewingHint = viewingHint;
}
}