Class TaggingServiceImpl

    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.alfresco.repo.policy.Policy

        Policy.Arg
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.alfresco.service.cmr.repository.NodeRef addTag​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.String tagName)
      Add a tag to a node.
      java.util.List<org.alfresco.util.Pair<java.lang.String,​org.alfresco.service.cmr.repository.NodeRef>> addTags​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.List<java.lang.String> tags)
      Adds a list of tags to a node.
      void addTagScope​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Adds a tag scope to the specified node
      void afterCheckOut​(org.alfresco.service.cmr.repository.NodeRef workingCopy)  
      void afterCommit()
      Invoked after transaction commit.
      void afterRollback()
      Invoked after transaction rollback.
      void beforeCommit​(boolean readOnly)
      Called before a transaction is committed.
      void beforeCompletion()
      Invoked before transaction commit/rollback.
      void beforeCopy​(org.alfresco.service.namespace.QName classRef, org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef)
      Fired once per node, before a copy overrides one node (which is possibly newly created) with the contents of another one.
      void beforeDeleteNode​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Called before a node is deleted.
      org.alfresco.service.cmr.repository.NodeRef changeTag​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String existingTag, java.lang.String newTag)  
      void clearTags​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Clears all tags from an already tagged node.
      org.alfresco.service.cmr.repository.NodeRef createTag​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String tag)
      Create a new tag
      void createTags​(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef)  
      void deleteTag​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String tag)
      Delete an existing tag and any references to it(cascade delete).
      java.util.List<TagScope> findAllTagScopes​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Finds all the tag scopes for the specified node.
      java.util.List<org.alfresco.service.cmr.repository.NodeRef> findTaggedNodes​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String tag)
      Find all nodes that have been tagged with the specified tag.
      java.util.List<org.alfresco.service.cmr.repository.NodeRef> findTaggedNodes​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String tag, org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Find all nodes that have been tagged with the specified tag and reside within the context of the node reference provided.
      java.util.List<org.alfresco.util.Pair<java.lang.String,​java.lang.Integer>> findTaggedNodesAndCountByTagName​(org.alfresco.service.cmr.repository.StoreRef storeRef)
      Get tagged nodes and count of nodes group by tag name
      TagScope findTagScope​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Finds the 'nearest' tag scope for the specified node.
      void flush()  
      org.alfresco.util.Pair<java.util.List<java.lang.String>,​java.lang.Integer> getPagedTags​(org.alfresco.service.cmr.repository.StoreRef storeRef, int fromTag, int pageSize)
      Get page of the tags currently available
      org.alfresco.util.Pair<java.util.List<java.lang.String>,​java.lang.Integer> getPagedTags​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String filter, int fromTag, int pageSize)  
      java.lang.String getTagName​(org.alfresco.service.cmr.repository.NodeRef nodeRef)  
      org.alfresco.service.cmr.repository.NodeRef getTagNodeRef​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String tag)
      Gets the node reference for a given tag.
      java.util.List<java.lang.String> getTags​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Get all the tags on a node
      org.alfresco.query.PagingResults<org.alfresco.util.Pair<org.alfresco.service.cmr.repository.NodeRef,​java.lang.String>> getTags​(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.query.PagingRequest pagingRequest)
      Get a paged list of all the tags on a node
      java.util.List<java.lang.String> getTags​(org.alfresco.service.cmr.repository.StoreRef storeRef)
      Get all the tags currently available
      java.util.List<java.lang.String> getTags​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String filter)
      Get all the tags currently available that match the provided filter.
      org.alfresco.query.PagingResults<org.alfresco.util.Pair<org.alfresco.service.cmr.repository.NodeRef,​java.lang.String>> getTags​(org.alfresco.service.cmr.repository.StoreRef storeRef, org.alfresco.query.PagingRequest pagingRequest)
      Get a paged list of all the tags currently available
      boolean hasTag​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.String tag)
      Indicates whether a node has the specified tag or not.
      void init()
      Init method
      boolean isTag​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String tag)
      Indicates whether the tag already exists
      boolean isTagScope​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Indicates whether the node reference is a tag scope
      void onCopyComplete​(org.alfresco.service.namespace.QName classRef, org.alfresco.service.cmr.repository.NodeRef sourceNodeRef, org.alfresco.service.cmr.repository.NodeRef targetNodeRef, boolean copyToNewNode, java.util.Map<org.alfresco.service.cmr.repository.NodeRef,​org.alfresco.service.cmr.repository.NodeRef> copyMap)
      Fired once per node that was copied, after the copy has completed.
      void onMoveNode​(org.alfresco.service.cmr.repository.ChildAssociationRef oldChildAssocRef, org.alfresco.service.cmr.repository.ChildAssociationRef newChildAssocRef)
      Called when a node has been moved.
      void refreshTagScope​(org.alfresco.service.cmr.repository.NodeRef nodeRef, boolean async)
      Refreshes the tag count of the passed tag scope by recounting all the tags of the children of the scope.
      void removeTag​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.String tag)
      Remove a tag from a node.
      void removeTags​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.List<java.lang.String> tags)
      Removes a list of tags from a node.
      void removeTagScope​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Removes a tag scope from a specified node.
      void setActionService​(ActionService actionService)
      Set the action service
      void setAuditComponent​(AuditComponent auditComponent)
      Set the audit component
      void setCategoryService​(CategoryService categoryService)
      Set the cateogry service
      void setContentService​(ContentService contentService)
      Set the content service
      void setNamespaceService​(org.alfresco.service.namespace.NamespaceService namespaceService)
      Set the namespace service
      void setNodeService​(org.alfresco.service.cmr.repository.NodeService nodeService)
      Set the node service
      void setNodeServiceInternal​(org.alfresco.service.cmr.repository.NodeService nodeServiceInternal)  
      void setPolicyComponent​(PolicyComponent policyComponent)
      Policy component
      void setSearchService​(org.alfresco.service.cmr.search.SearchService searchService)
      Set the search service
      void setTags​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.List<java.lang.String> tags)
      Sets the list of tags that are applied to a node, replaces any existing tags with those provided.
      void updateTags​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> before, java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> after)
      Update tag policy behaviour
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • TAGGING_AUDIT_APPLICATION_NAME

        protected static final java.lang.String TAGGING_AUDIT_APPLICATION_NAME
        See Also:
        Constant Field Values
      • TAGGING_AUDIT_ROOT_PATH

        protected static final java.lang.String TAGGING_AUDIT_ROOT_PATH
        See Also:
        Constant Field Values
      • TAGGING_AUDIT_KEY_NODEREF

        protected static final java.lang.String TAGGING_AUDIT_KEY_NODEREF
        See Also:
        Constant Field Values
      • TAGGING_AUDIT_KEY_TAGS

        protected static final java.lang.String TAGGING_AUDIT_KEY_TAGS
        See Also:
        Constant Field Values
    • Constructor Detail

      • TaggingServiceImpl

        public TaggingServiceImpl()
    • Method Detail

      • setCategoryService

        public void setCategoryService​(CategoryService categoryService)
        Set the cateogry service
      • setNodeService

        public void setNodeService​(org.alfresco.service.cmr.repository.NodeService nodeService)
        Set the node service
      • setNodeServiceInternal

        public void setNodeServiceInternal​(org.alfresco.service.cmr.repository.NodeService nodeServiceInternal)
        Parameters:
        nodeServiceInternal - service to use when permission checks are not required
      • setSearchService

        public void setSearchService​(org.alfresco.service.cmr.search.SearchService searchService)
        Set the search service
      • setActionService

        public void setActionService​(ActionService actionService)
        Set the action service
      • setContentService

        public void setContentService​(ContentService contentService)
        Set the content service
      • setNamespaceService

        public void setNamespaceService​(org.alfresco.service.namespace.NamespaceService namespaceService)
        Set the namespace service
      • setPolicyComponent

        public void setPolicyComponent​(PolicyComponent policyComponent)
        Policy component
      • setAuditComponent

        public void setAuditComponent​(AuditComponent auditComponent)
        Set the audit component
      • init

        public void init()
        Init method
      • beforeCopy

        public void beforeCopy​(org.alfresco.service.namespace.QName classRef,
                               org.alfresco.service.cmr.repository.NodeRef sourceNodeRef,
                               org.alfresco.service.cmr.repository.NodeRef targetNodeRef)
        Fired once per node, before a copy overrides one node (which is possibly newly created) with the contents of another one. We should remove any tags from the scope, as they'll shortly be overwritten.
        Specified by:
        beforeCopy in interface CopyServicePolicies.BeforeCopyPolicy
        Parameters:
        classRef - the type of the node that will be copied
        sourceNodeRef - the original node
        targetNodeRef - the destination node
      • onCopyComplete

        public void onCopyComplete​(org.alfresco.service.namespace.QName classRef,
                                   org.alfresco.service.cmr.repository.NodeRef sourceNodeRef,
                                   org.alfresco.service.cmr.repository.NodeRef targetNodeRef,
                                   boolean copyToNewNode,
                                   java.util.Map<org.alfresco.service.cmr.repository.NodeRef,​org.alfresco.service.cmr.repository.NodeRef> copyMap)
        Fired once per node that was copied, after the copy has completed. We need to add in all the tags to the scope.
        Specified by:
        onCopyComplete in interface CopyServicePolicies.OnCopyCompletePolicy
        Parameters:
        classRef - the type of the node that was copied
        sourceNodeRef - the original node
        targetNodeRef - the destination node
        copyMap - a map containing all the nodes that have been created during the copy
      • onMoveNode

        public void onMoveNode​(org.alfresco.service.cmr.repository.ChildAssociationRef oldChildAssocRef,
                               org.alfresco.service.cmr.repository.ChildAssociationRef newChildAssocRef)
        Description copied from interface: NodeServicePolicies.OnMoveNodePolicy
        Called when a node has been moved.
        Specified by:
        onMoveNode in interface NodeServicePolicies.OnMoveNodePolicy
        Parameters:
        oldChildAssocRef - the child association reference prior to the move
        newChildAssocRef - the child association reference after the move
      • createTags

        public void createTags​(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef)
      • updateTags

        public void updateTags​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                               java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> before,
                               java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> after)
        Update tag policy behaviour
      • getTagName

        public java.lang.String getTagName​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Specified by:
        getTagName in interface TaggingService
      • isTag

        public boolean isTag​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                             java.lang.String tag)
        Description copied from interface: TaggingService
        Indicates whether the tag already exists
        Specified by:
        isTag in interface TaggingService
        Parameters:
        storeRef - store reference
        tag - tag name
        Returns:
        boolean true if the tag exists, false otherwise
        See Also:
        TaggingService.isTag(StoreRef, java.lang.String)
      • changeTag

        public org.alfresco.service.cmr.repository.NodeRef changeTag​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                     java.lang.String existingTag,
                                                                     java.lang.String newTag)
        Specified by:
        changeTag in interface TaggingService
      • getPagedTags

        public org.alfresco.util.Pair<java.util.List<java.lang.String>,​java.lang.Integer> getPagedTags​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                                                             int fromTag,
                                                                                                             int pageSize)
        Description copied from interface: TaggingService
        Get page of the tags currently available
        Specified by:
        getPagedTags in interface TaggingService
        Parameters:
        storeRef - node reference
        fromTag - offset
        pageSize - page size
        Returns:
        pair of tag names and total count
      • getPagedTags

        public org.alfresco.util.Pair<java.util.List<java.lang.String>,​java.lang.Integer> getPagedTags​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                                                             java.lang.String filter,
                                                                                                             int fromTag,
                                                                                                             int pageSize)
        Specified by:
        getPagedTags in interface TaggingService
        Parameters:
        storeRef - node reference
        filter - tag filter
        fromTag - page offset
        pageSize - page size
        Returns:
        pair of tag names and total count
      • getTagNodeRef

        public org.alfresco.service.cmr.repository.NodeRef getTagNodeRef​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                         java.lang.String tag)
        Gets the node reference for a given tag.

        Returns null if tag is not present.

        Specified by:
        getTagNodeRef in interface TaggingService
        Parameters:
        storeRef - store reference
        tag - tag
        Returns:
        NodeRef tag node reference or null not exist
      • findTagScope

        public TagScope findTagScope​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Description copied from interface: TaggingService
        Finds the 'nearest' tag scope for the specified node.

        The 'nearest' tag scope is discovered by walking up the primary parent path until a tag scope is found or the root node is reached.

        If no tag scope if found then a null value is returned.

        Specified by:
        findTagScope in interface TaggingService
        Parameters:
        nodeRef - node reference
        Returns:
        the 'nearest' tag scope or null if none found
        See Also:
        TaggingService.findTagScope(org.alfresco.service.cmr.repository.NodeRef)
      • findTaggedNodes

        public java.util.List<org.alfresco.service.cmr.repository.NodeRef> findTaggedNodes​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                                           java.lang.String tag)
        Description copied from interface: TaggingService
        Find all nodes that have been tagged with the specified tag.
        Specified by:
        findTaggedNodes in interface TaggingService
        tag - tag name
        Returns:
        list of nodes tagged with specified tag, empty of none found
        See Also:
        TaggingService.findTaggedNodes(StoreRef, java.lang.String)
      • afterCommit

        public void afterCommit()
        Description copied from interface: TransactionListener
        Invoked after transaction commit.

        Any exceptions generated here will only be logged and will have no effect on the state of the transaction.

        Although all transaction resources are still available, this method should be used only for cleaning up resources after a commit has occured.

        Specified by:
        afterCommit in interface TransactionListener
        Specified by:
        afterCommit in interface org.alfresco.util.transaction.TransactionListener
        See Also:
        TransactionListener.afterCommit()
      • afterRollback

        public void afterRollback()
        Description copied from interface: TransactionListener
        Invoked after transaction rollback.

        Any exceptions generated here will only be logged and will have no effect on the state of the transaction.

        Although all transaction resources are still available, this method should be used only for cleaning up resources after a rollback has occured.

        Specified by:
        afterRollback in interface TransactionListener
        Specified by:
        afterRollback in interface org.alfresco.util.transaction.TransactionListener
        See Also:
        TransactionListener.afterRollback()
      • beforeCommit

        public void beforeCommit​(boolean readOnly)
        Description copied from interface: TransactionListener
        Called before a transaction is committed.

        All transaction resources are still available.

        Specified by:
        beforeCommit in interface TransactionListener
        Specified by:
        beforeCommit in interface org.alfresco.util.transaction.TransactionListener
        Parameters:
        readOnly - true if the transaction is read-only
        See Also:
        TransactionListener.beforeCommit(boolean)
      • afterCheckOut

        public void afterCheckOut​(org.alfresco.service.cmr.repository.NodeRef workingCopy)