Class OpenAnnotationBuilder
java.lang.Object
io.goobi.viewer.model.iiif.presentation.v2.builder.AbstractAnnotationBuilder
io.goobi.viewer.model.iiif.presentation.v2.builder.OpenAnnotationBuilder
- Author:
- Florian Alpers
-
Field Summary
Fields inherited from class io.goobi.viewer.model.iiif.presentation.v2.builder.AbstractAnnotationBuilder
UGC_SOLR_FIELDS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionde.intranda.api.annotation.IResourcecreateAnnnotationBodyFromUGCDocument(org.apache.solr.common.SolrDocument doc) de.intranda.api.annotation.IResourcecreateFragmentTarget(String pi, int pageOrder, String coordString, boolean urlOnlyTarget) de.intranda.api.annotation.oa.OpenAnnotationcreateUGCOpenAnnotation(String pi, org.apache.solr.common.SolrDocument doc, boolean urlOnlyTarget) createOpenAnnotation.de.intranda.api.annotation.oa.OpenAnnotationcreateUGCOpenAnnotation(org.apache.solr.common.SolrDocument doc, boolean urlOnlyTarget) createOpenAnnotation.de.intranda.api.annotation.IAnnotationde.intranda.api.annotation.IAnnotationCollectiongetCrowdsourcingAnnotationCollection(URI uri, String pi, boolean urlsOnly, HttpServletRequest request) de.intranda.api.annotation.IAnnotationCollectiongetCrowdsourcingAnnotationCollection(URI uri, String pi, Integer page, boolean urlsOnly, HttpServletRequest request) getCrowdsourcingAnnotations(String pi, boolean urlOnlyTarget, HttpServletRequest request) Gets all annotations for the given PI from the DAO, sorted by page number.getCrowdsourcingAnnotationsFromSolr(String pi, boolean urlOnlyTarget, HttpServletRequest request) Gets all annotations for the given PI from the SOLR index, sorted by page number.Methods inherited from class io.goobi.viewer.model.iiif.presentation.v2.builder.AbstractAnnotationBuilder
getAnnotation, getAnnotationCount, getAnnotationDocument, getAnnotationDocuments, getAnnotationDocuments, getAnnotationDocuments, getAnnotationQuery, getAnnotationQuery, getAnnotationQuery, getAnnotationQuery, getRestBuilder
-
Constructor Details
-
OpenAnnotationBuilder
- Parameters:
apiUrlManager- the URL manager for building API paths
-
-
Method Details
-
getCrowdsourcingAnnotationsFromSolr
public Map<Integer,List<de.intranda.api.annotation.oa.OpenAnnotation>> getCrowdsourcingAnnotationsFromSolr(String pi, boolean urlOnlyTarget, HttpServletRequest request) throws PresentationException, IndexUnreachableException Gets all annotations for the given PI from the SOLR index, sorted by page number. The annotations are stored as DOCTYPE:UGC in the SOLR and are converted to OpenAnnotations here- Parameters:
pi- The persistent identifier of the work to queryurlOnlyTarget- if true, use URI-only annotation targetsrequest- the current HTTP servlet request- Returns:
- A map of page numbers (1-based) mapped to a list of associated annotations
- Throws:
PresentationException- if any.IndexUnreachableException- if any.
-
getCrowdsourcingAnnotations
public Map<Integer,List<de.intranda.api.annotation.oa.OpenAnnotation>> getCrowdsourcingAnnotations(String pi, boolean urlOnlyTarget, HttpServletRequest request) throws DAOException Gets all annotations for the given PI from the DAO, sorted by page number. The annotations are stored as DOCTYPE:UGC in the SOLR and are converted to OpenAnnotations here- Parameters:
pi- The persistent identifier of the work to queryurlOnlyTarget- if true, use URI-only annotation targetsrequest- the current HTTP servlet request- Returns:
- A map of page numbers (1-based) mapped to a list of associated annotations
- Throws:
PresentationException- if any.IndexUnreachableException- if any.DAOException
-
getCrowdsourcingAnnotation
public de.intranda.api.annotation.IAnnotation getCrowdsourcingAnnotation(String id) throws PresentationException, IndexUnreachableException -
createUGCOpenAnnotation
public de.intranda.api.annotation.oa.OpenAnnotation createUGCOpenAnnotation(org.apache.solr.common.SolrDocument doc, boolean urlOnlyTarget) createOpenAnnotation.- Parameters:
doc- Solr document of type UGC containing the annotation dataurlOnlyTarget- if true, use URI-only annotation targets- Returns:
- the OpenAnnotation created from the given UGC Solr document
-
createUGCOpenAnnotation
public de.intranda.api.annotation.oa.OpenAnnotation createUGCOpenAnnotation(String pi, org.apache.solr.common.SolrDocument doc, boolean urlOnlyTarget) createOpenAnnotation.- Parameters:
pi- persistent identifier of the annotated recorddoc- Solr document of type UGC containing the annotation dataurlOnlyTarget- if true, use URI-only annotation targets- Returns:
- the OpenAnnotation created from the given UGC Solr document for the specified record
-
createFragmentTarget
public de.intranda.api.annotation.IResource createFragmentTarget(String pi, int pageOrder, String coordString, boolean urlOnlyTarget) - Parameters:
pi- persistent identifier of the workpageOrder- physical page number (1-based)coordString- coordinate string encoding the fragment regionurlOnlyTarget- if true, return a URI-only specific resource- Returns:
IResource
-
createAnnnotationBodyFromUGCDocument
public de.intranda.api.annotation.IResource createAnnnotationBodyFromUGCDocument(org.apache.solr.common.SolrDocument doc) - Parameters:
doc- the Solr document containing the UGC annotation body fields- Returns:
IResource
-
getCrowdsourcingAnnotationCollection
public de.intranda.api.annotation.IAnnotationCollection getCrowdsourcingAnnotationCollection(URI uri, String pi, boolean urlsOnly, HttpServletRequest request) throws DAOException - Parameters:
uri- the URI to assign to the annotation collectionpi- persistent identifier of the workurlsOnly- if true, annotation targets are URL-only resourcesrequest- the current HTTP servlet request- Returns:
IAnnotationCollection- Throws:
IndexUnreachableExceptionPresentationExceptionDAOException
-
getCrowdsourcingAnnotationCollection
public de.intranda.api.annotation.IAnnotationCollection getCrowdsourcingAnnotationCollection(URI uri, String pi, Integer page, boolean urlsOnly, HttpServletRequest request) throws DAOException - Parameters:
uri- the URI to assign to the annotation collectionpi- persistent identifier of the workpage- physical page number to filter annotations byurlsOnly- if true, annotation targets are URL-only resourcesrequest- the current HTTP servlet request- Returns:
IAnnotationCollection- Throws:
DAOException
-