Class AbstractCommentingProvider

java.lang.Object
com.adobe.granite.comments.AbstractCommentingProvider
All Implemented Interfaces:
CommentingProvider

@ConsumerType public abstract class AbstractCommentingProvider extends Object implements CommentingProvider
The AbstractCommentingProvider provides a default implementation for storing Comments and CommentCollections. CommentingProviders are recommended to extend this abstract implementation and override where necessary.
  • Field Details

  • Constructor Details

    • AbstractCommentingProvider

      public AbstractCommentingProvider()
  • Method Details

    • createCollectionResource

      public final Resource createCollectionResource(Resource target)
      Create the root of a CommentCollection for the given target Resource. Node creation may be overridden via createCollectionNode(String, javax.jcr.Session). If not already present on the node, this method also will set the JCR_CREATED_BY and JcrConstants.JCR_CREATED properties. The last modified mixin will maintain the last modified date. Custom properties may be set on the collection node via customizeCollectionNode(Resource, javax.jcr.Node).
      Parameters:
      target - The target resource for which to create a collection root.
      Returns:
      The newly created resource representing the collection root.
      Throws:
      CommentException - If a collection already exists for the given target, or upon encountering an error writing to the repository.
    • createCommentResource

      public final Resource createCommentResource(Resource collectionResource, String message, String author, String annotationData)
      Add a Comment resource to the given CommentCollection resource, set the given message on the comment. Comment node creation may be overridden via createCommentNode(String, javax.jcr.Node, javax.jcr.Session). This method will forcibly set a SLING_RESOURCE_TYPE property (if defined by getCommentResourceType() ()}), the PN_MESSAGE property. If not already present on the node, this method also will set the JCR_CREATED_BY and JcrConstants.JCR_CREATED properties. Custom properties may be set on the comment resource via customizeCommentNode(Resource, javax.jcr.Node) (javax.jcr.Node)}.
      Parameters:
      collectionResource - The collection within which to create the comment.
      message - The message to store in the comment.
      author - The author to store in the comment.
      annotationData - The annotation data to store in the comment.
      Returns:
      The newly created comment Resource.
      Throws:
      CommentException - Upon encountering an error writing to the repository.
    • getCommentResources

      public Iterator<Resource> getCommentResources(Resource collectionResource)
      Returns an Iterator of Resources, with each resource representing a Comment of the given CommentCollection.
      Parameters:
      collectionResource - The CommentCollection for which to retrieve the comment resources.
      Returns:
      The iterator containing the comment resources, or an empty iterator if no comments are present.
      Throws:
      CommentException - Upon encountering an error retrieving the comments.
    • removeCommentResource

      public void removeCommentResource(Resource resource)
      Remove (delete) the given Comment from the repository.
      Parameters:
      resource - The comment resource to delete.
      Throws:
      CommentException - Upon encountering an error writing to the repository.
    • removeCollectionResource

      public void removeCollectionResource(Resource resource)
      Remove (delete) the given CommentCollection from the repository.
      Parameters:
      resource - The collection to delete.
      Throws:
      CommentException - Upon encountering an error writing to the repository.
    • createAttachmentResource

      public final Resource createAttachmentResource(Resource commentResource, String name, InputStream inputStream, String mimeType)
      Add an attachment to the given Comment. The attachment is represented by the given name (file name), an InputStream and the mime type, all of which are mandatory parameters. The relative path with which the attachment is created can be customized via getAttachmentResourcePath(String), also arbitrary properties can be set on the attachment's content node via customizeAttachmentNode(Resource, javax.jcr.Node).
      Parameters:
      commentResource - The comment to which to add the attachment.
      name - The name (file name) for the attachment.
      inputStream - The input stream containing the file data of the attachment.
      mimeType - The mime type of the attachment data.
      Returns:
      The newly created attachment resource.
      Throws:
      CommentException - Upon encountering an error writing to the repository.
    • getAttachmentResource

      public Resource getAttachmentResource(Resource commentResource, String name)
      Return the attachment of the given Comment as identified by its given name (file name).
      Parameters:
      commentResource - The comment from which to get the attachment.
      name - The name of the attachment.
      Returns:
      The Resource representing the attachment, or null if no attachment with the given name was found.
      Throws:
      CommentException - Upon encountering an error retrieving the attachment.
    • removeAttachmentResource

      public void removeAttachmentResource(Resource commentResource, String name)
      Remove (delete) the attachment identified by the given name from the given Comment.
      Parameters:
      commentResource - The comment from which to remove the attachment.
      name - The name of the attachment to remove.
      Throws:
      CommentException - Upon encountering an error writing to the repository.
    • getAttachmentMap

      public final Map<String,Resource> getAttachmentMap(Resource commentResource) throws CommentException
      Return a Map containing the given Comments attachments. The map key is the attachment's name (file name), the map value holds the Resource representing the attachment.
      Parameters:
      commentResource - The comment for which to retrieve the attachments.
      Returns:
      The map of attachments, or an empty map if no attachments are present.
      Throws:
      CommentException - Upon encountering an error retrieving the attachments.
    • getCollectionResourceType

      public abstract String getCollectionResourceType()
      Returns an optional resource type to set for newly created collections.
      Returns:
      The resource type or null if none shall be set.
    • getCommentResourceType

      public abstract String getCommentResourceType()
      Returns an optional resource type to set for newly created comments.
      Returns:
      The resource type or null if none shall be set.