Class BridgeCommentManager
java.lang.Object
org.nuxeo.ecm.platform.comment.impl.AbstractCommentManager
org.nuxeo.ecm.platform.comment.impl.BridgeCommentManager
- All Implemented Interfaces:
CommentManager
- Since:
- 10.3
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.nuxeo.ecm.platform.comment.api.CommentManager
CommentManager.Feature -
Field Summary
FieldsFields inherited from class org.nuxeo.ecm.platform.comment.impl.AbstractCommentManager
COMMENTS_DIRECTORY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateComment(CoreSession session, Comment comment) Creates a comment.createComment(DocumentModel docModel, String comment) Creates a comment.createComment(DocumentModel docModel, String comment, String author) Creates a comment document model, filling its properties with given info and linking it to given document.createComment(DocumentModel docModel, DocumentModel comment) Creates a comment document model, filling its properties with given info and linking it to given document.createComment(DocumentModel docModel, DocumentModel parent, DocumentModel child) Creates a comment document model, filling its properties with given info and linking it to given document.createLocatedComment(DocumentModel docModel, DocumentModel comment, String path) Creates a comment document model.voiddeleteComment(CoreSession session, String commentId) Deletes a comment.voiddeleteComment(DocumentModel docModel, DocumentModel comment) Deletes a comment.voiddeleteExternalComment(CoreSession session, String documentId, String entityId) Deletes an external comment by its {code entityId} under the document withdocumentId.protected <T> Texecute(CoreSession s, DocumentRef documentRef, Function<CommentManager, T> function) Executes the given function for a comment document ref, depending on the types of comment managers.getComment(CoreSession session, String commentId) Gets a comment.protected DocumentModelgetCommentedDocument(CoreSession session, DocumentModel commentDoc) getComments(CoreSession session, String documentId) Gets all comments for a document.getComments(CoreSession session, String documentId, Long pageSize, Long currentPageIndex, boolean sortAscending) Gets all comments for a document.getComments(CoreSession session, Collection<String> documentIds) Gets all comments for a collection of documents.getComments(CoreSession session, DocumentModel docModel) Gets comments of a document.getComments(DocumentModel docModel) Gets comments of a document.getDocumentsForComment(DocumentModel comment) Gets documents in relation with a particular comment.getExternalComment(CoreSession session, String documentId, String entityId) Gets an external comment by itsentityIdunder the document withdocumentId.getFirst()getThreadForComment(DocumentModel comment) Gets thread in relation with a given comment (post or comment).protected DocumentModelgetTopLevelDocument(CoreSession session, DocumentModel commentDoc) getTopLevelDocumentRef(CoreSession session, DocumentRef commentIdRef) Gets the top level ancestor document ref for the given document model comment ref.booleanhasFeature(CommentManager.Feature feature) Checks if a feature is available.updateComment(CoreSession session, String commentId, Comment comment) Updates a comment.updateExternalComment(CoreSession session, String documentId, String entityId, Comment comment) Updates an external comment by itsentityIdunder the document withdocumentId.Methods inherited from class org.nuxeo.ecm.platform.comment.impl.AbstractCommentManager
computeAncestorIds, fillCommentForCreation, getAuthor, getComments, getComments, getComments, notifyEvent, notifyEvent, notifyEvent, setCommentPermissions, setFolderPermissionsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.nuxeo.ecm.platform.comment.api.CommentManager
deleteExternalComment, getExternalComment, updateExternalComment
-
Field Details
-
first
-
second
-
-
Constructor Details
-
BridgeCommentManager
-
-
Method Details
-
getFirst
- Since:
- 11.1
-
getSecond
- Since:
- 11.1
-
getComments
Description copied from interface:CommentManagerGets comments of a document.- Specified by:
getCommentsin interfaceCommentManager- Overrides:
getCommentsin classAbstractCommentManager- Parameters:
docModel- the document model- Returns:
- the list of comments
-
getComments
public List<DocumentModel> getComments(CoreSession session, DocumentModel docModel) throws CommentSecurityException Description copied from interface:CommentManagerGets comments of a document.- Parameters:
session- the core sessiondocModel- the document model- Returns:
- the list of comments
- Throws:
CommentSecurityException- if the current user does not have the right permissions on the commented document
-
createComment
Description copied from interface:CommentManagerCreates a comment.- Parameters:
docModel- the document to commentcomment- the comment content
-
createComment
Description copied from interface:CommentManagerCreates a comment document model, filling its properties with given info and linking it to given document.- Parameters:
docModel- the document to commentcomment- the comment contentauthor- the comment author- Returns:
- the comment document model.
-
createComment
public DocumentModel createComment(DocumentModel docModel, DocumentModel comment) throws CommentSecurityException Description copied from interface:CommentManagerCreates a comment document model, filling its properties with given info and linking it to given document.- Parameters:
docModel- the document to commentcomment- the comment document model- Returns:
- the created comment document model.
- Throws:
CommentSecurityException- if the current user does not have the right permissions on the document to comment.
-
createComment
public DocumentModel createComment(DocumentModel docModel, DocumentModel parent, DocumentModel child) Description copied from interface:CommentManagerCreates a comment document model, filling its properties with given info and linking it to given document.- Parameters:
docModel- the document to commentparent- the comment parent document modelchild- the comment child document model- Returns:
- the created comment document model.
-
deleteComment
Description copied from interface:CommentManagerDeletes a comment.- Parameters:
docModel- the comment document modelcomment- the comment
-
getDocumentsForComment
Description copied from interface:CommentManagerGets documents in relation with a particular comment.- Parameters:
comment- the comment- Returns:
- the list of documents
-
getThreadForComment
Description copied from interface:CommentManagerGets thread in relation with a given comment (post or comment).- Parameters:
comment- the comment- Returns:
- the thread
- Throws:
CommentSecurityException- if the current user does not have the right permissions on the commented document.
-
createLocatedComment
public DocumentModel createLocatedComment(DocumentModel docModel, DocumentModel comment, String path) throws CommentSecurityException Description copied from interface:CommentManagerCreates a comment document model. It gives opportunity to save the comments in a specified location.- Parameters:
docModel- the document to commentcomment- the comment contentpath- the location path- Returns:
- the comment document model.
- Throws:
CommentSecurityException- if the current user does not have the right permissions on the document to comment.
-
createComment
public Comment createComment(CoreSession session, Comment comment) throws CommentNotFoundException, CommentSecurityException Description copied from interface:CommentManagerCreates a comment.- Parameters:
session- the core session- Returns:
- the created comment
- Throws:
CommentNotFoundException- if the document to comment, i.e. comment's parent, does not exist.CommentSecurityException- if the current user does not have the right permissions on the document to comment.
-
getComment
public Comment getComment(CoreSession session, String commentId) throws CommentNotFoundException, CommentSecurityException Description copied from interface:CommentManagerGets a comment.- Parameters:
session- the core sessioncommentId- the comment id- Returns:
- the comment
- Throws:
CommentNotFoundException- if the comment does not existCommentSecurityException- if the current user does not have the right permissions on the commented document.
-
getComments
Description copied from interface:CommentManagerGets all comments for a document.- Specified by:
getCommentsin interfaceCommentManager- Overrides:
getCommentsin classAbstractCommentManager- Parameters:
session- the core sessiondocumentId- the document id- Returns:
- the list of comments, ordered ascending by comment's creation date, or an empty list if no comment is found.
-
getComments
public PartialList<Comment> getComments(CoreSession session, String documentId, Long pageSize, Long currentPageIndex, boolean sortAscending) throws CommentSecurityException Description copied from interface:CommentManagerGets all comments for a document.- Parameters:
session- the core sessiondocumentId- the document idpageSize- the page size to query, give null or 0 to disable paginationcurrentPageIndex- the page index to query, give null or 0 to disable paginationsortAscending- whether to sort ascending or descending- Returns:
- the list of comments, ordered by comment's creation date and according to sortAscending parameter, or an empty list if no comment is found.
- Throws:
CommentSecurityException- if the current user does not have the right permissions on the commented document.
-
getComments
Description copied from interface:CommentManagerGets all comments for a collection of documents.- Parameters:
session- the core sessiondocumentIds- the document ids- Returns:
- the list of comments
-
updateComment
public Comment updateComment(CoreSession session, String commentId, Comment comment) throws CommentNotFoundException, CommentSecurityException Description copied from interface:CommentManagerUpdates a comment.- Parameters:
session- the core sessioncommentId- the comment idcomment- the updated comment- Returns:
- the updated comment
- Throws:
CommentNotFoundException- if no comment was found with the given id.CommentSecurityException- if the current user does not have the right permissions on the commented document.
-
deleteComment
public void deleteComment(CoreSession session, String commentId) throws CommentNotFoundException, CommentSecurityException Description copied from interface:CommentManagerDeletes a comment.- Parameters:
session- the core sessioncommentId- the comment id- Throws:
CommentNotFoundException- if no comment was found with the given id.CommentSecurityException- if the current user does not have the right permissions on the commented document.
-
getExternalComment
public Comment getExternalComment(CoreSession session, String documentId, String entityId) throws CommentNotFoundException, CommentSecurityException Description copied from interface:CommentManagerGets an external comment by itsentityIdunder the document withdocumentId.- Returns:
- the comment with given
entityIdunder the document with givendocumentId - Throws:
CommentNotFoundException- if no comment was found with the given external entity idCommentSecurityException- if the current user does have the right permissions on the commented document.
-
updateExternalComment
public Comment updateExternalComment(CoreSession session, String documentId, String entityId, Comment comment) throws CommentNotFoundException, CommentSecurityException Description copied from interface:CommentManagerUpdates an external comment by itsentityIdunder the document withdocumentId.- Returns:
- the updated comment with given
entityIdunder the document with givendocumentId - Throws:
CommentNotFoundException- if no comment was found with the given external entity idCommentSecurityException- if the current user does have the right permissions on the commented document.
-
deleteExternalComment
public void deleteExternalComment(CoreSession session, String documentId, String entityId) throws CommentNotFoundException, CommentSecurityException Description copied from interface:CommentManagerDeletes an external comment by its {code entityId} under the document withdocumentId.- Throws:
CommentNotFoundException- if no comment was found with the given external entity idCommentSecurityException- if the current user does have the right permissions on the commented document.
-
hasFeature
Description copied from interface:CommentManagerChecks if a feature is available. -
getTopLevelDocumentRef
Description copied from interface:CommentManagerGets the top level ancestor document ref for the given document model comment ref. No matter how many levels of comments there is.Given a document fileOne, that we comment with commentOne which we reply on with replyOne
This method will return:
- CommentManager#getAncestorRef(session, commentOne) = fileOne
- CommentManager#getAncestorRef(session, replyOne) = fileOne
- Specified by:
getTopLevelDocumentRefin interfaceCommentManager- Overrides:
getTopLevelDocumentRefin classAbstractCommentManager- Parameters:
session- the CoreSessioncommentIdRef- the comment document model ref- Returns:
- the top level ancestor document ref
-
getTopLevelDocument
- Specified by:
getTopLevelDocumentin classAbstractCommentManager
-
getCommentedDocument
- Specified by:
getCommentedDocumentin classAbstractCommentManager
-
execute
protected <T> T execute(CoreSession s, DocumentRef documentRef, Function<CommentManager, T> function) Executes the given function for a comment document ref, depending on the types of comment managers.In some cases, leveraging
CommentConstants.COMMENT_PARENT_ID_PROPERTYis not enough, this is the case when bridge is used withPropertyCommentManagerandTreeCommentManager.CommentManagerImpl(or RelationCommentManager): Comments structures are stored in jenaGraphPropertyCommentManager: All comments are stored under a hidden folder and each comment stores its parent id incomment:parentIdpropertyTreeCommentManager: ACommentConstants.COMMENT_ROOT_DOC_TYPEdocument is created under the top level document to store the comments. Replies are then stored directly under their parent (which is a comment)
- Since:
- 11.1
-