All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.digitalcollections.iiif.presentation.model.impl.v2.AnnotationImpl Maven / Gradle / Ivy

The newest version!
package de.digitalcollections.iiif.presentation.model.impl.v2;

import de.digitalcollections.iiif.presentation.model.api.v2.Annotation;
import de.digitalcollections.iiif.presentation.model.api.v2.AnnotationResource;
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.Thumbnail;
import java.net.URI;
import java.util.List;

public class AnnotationImpl extends AbstractIiifResourceImpl implements Annotation {

  private PropertyValue description; // optional
  private PropertyValue label; // optional
  private List metadata; // optional
  private String motivation; // required
  private URI on;

  private AnnotationResource resource;

  private Thumbnail thumbnail; // optional
  private String viewingHint; // optional

  public AnnotationImpl() {

  }

  public AnnotationImpl(String motivation) {
    type = "oa:Annotation";
    this.motivation = motivation;
  }

  /**
   * Convenience constructor (as id and label are optional)
   *
   * @param motivation motivation of this annotation
   * @param id unique id of resource
   * @param label label of the Annotation
   */
  public AnnotationImpl(String motivation, URI id, PropertyValue label) {
    this(motivation);
    this.label = label;
    this.id = id;
  }

  public AnnotationImpl(String motivation, String id, PropertyValue label) {
    this(motivation, URI.create(id), label);
  }

  @Override
  public PropertyValue getDescription() {
    return description;
  }

  @Override
  public void setDescription(PropertyValue description) {
    this.description = description;
  }

  @Override
  public PropertyValue getLabel() {
    return label;
  }

  @Override
  public void setLabel(PropertyValue label) {
    this.label = label;
  }

  @Override
  public List getMetadata() {
    return metadata;
  }

  @Override
  public void setMetadata(List metadata) {
    this.metadata = metadata;
  }

  @Override
  public URI getOn() {
    return on;
  }

  @Override
  public void setOn(URI on) {
    this.on = on;
  }

  @Override
  public Thumbnail getThumbnail() {
    return thumbnail;
  }

  @Override
  public void setThumbnail(Thumbnail thumbnail) {
    this.thumbnail = thumbnail;
  }

  @Override
  public String getViewingHint() {
    return viewingHint;
  }

  @Override
  public void setViewingHint(String viewingHint) {
    this.viewingHint = viewingHint;
  }

  @Override
  public String getMotivation() {
    return motivation;
  }

  @Override
  public AnnotationResource getResource() {
    return resource;
  }

  @Override
  public void setResource(AnnotationResource annotationResource) {
    this.resource = annotationResource;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy