Interface CategoryService

  • All Known Implementing Classes:
    LuceneCategoryServiceImpl, NoIndexCategoryServiceImpl, SolrCategoryServiceImpl

    @AlfrescoPublicApi
    public interface CategoryService
    Category Service The service for querying and creating categories. All other management can be carried out using the node service. Classification - the groupings of categories. There is a one-to-one mapping with aspects. For example, Region. Root Category - the top level categories in a classification. For example, Northern Europe Category - any other category below a root category
    Author:
    Andy Hind
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static class  CategoryService.Depth
      Depth from which to get nodes.
      static class  CategoryService.Mode
      Enumeration for navigation control.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      org.alfresco.service.cmr.repository.NodeRef createCategory​(org.alfresco.service.cmr.repository.NodeRef parent, java.lang.String name)
      Create a new category.
      org.alfresco.service.cmr.repository.NodeRef createClassification​(org.alfresco.service.cmr.repository.StoreRef storeRef, org.alfresco.service.namespace.QName aspectName, java.lang.String attributeName)
      Create a new category.
      org.alfresco.service.cmr.repository.NodeRef createRootCategory​(org.alfresco.service.cmr.repository.StoreRef storeRef, org.alfresco.service.namespace.QName aspectName, java.lang.String name)
      Create a new root category in the given classification
      void deleteCategory​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Delete a category
      void deleteClassification​(org.alfresco.service.cmr.repository.StoreRef storeRef, org.alfresco.service.namespace.QName aspectName)
      Delete a classification
      java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef, org.alfresco.service.namespace.QName aspectQName, CategoryService.Depth depth)
      Get a list of all the categories appropriate for a given property.
      org.alfresco.service.cmr.repository.ChildAssociationRef getCategory​(org.alfresco.service.cmr.repository.NodeRef parent, org.alfresco.service.namespace.QName aspectName, java.lang.String name)
      Looks up a category by name under its immediate parent.
      java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getChildren​(org.alfresco.service.cmr.repository.NodeRef categoryRef, CategoryService.Mode mode, CategoryService.Depth depth)
      Get the children of a given category node
      java.util.Collection<org.alfresco.service.namespace.QName> getClassificationAspects()
      Get all the types that represent categories
      java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getClassifications​(org.alfresco.service.cmr.repository.StoreRef storeRef)
      Get all the classification entries
      java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getRootCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef, org.alfresco.service.namespace.QName aspectName)
      Get the root categories for an aspect/classification
      java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getRootCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef, org.alfresco.service.namespace.QName aspectName, java.lang.String filter)
      Get the root categories for an aspect/classification with names that start with filter
      java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getRootCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef, org.alfresco.service.namespace.QName aspectName, java.lang.String name, boolean create)
      Gets root categories by name, optionally creating one if one does not exist.
      org.alfresco.query.PagingResults<org.alfresco.service.cmr.repository.ChildAssociationRef> getRootCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef, org.alfresco.service.namespace.QName aspectName, org.alfresco.query.PagingRequest pagingRequest, boolean sortByName)
      Get a paged list of the root categories for an aspect/classification
      org.alfresco.query.PagingResults<org.alfresco.service.cmr.repository.ChildAssociationRef> getRootCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef, org.alfresco.service.namespace.QName aspectName, org.alfresco.query.PagingRequest pagingRequest, boolean sortByName, java.lang.String filter)
      Get a paged list of the root categories for an aspect/classification
      java.util.List<org.alfresco.util.Pair<org.alfresco.service.cmr.repository.NodeRef,​java.lang.Integer>> getTopCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef, org.alfresco.service.namespace.QName aspectName, int count)
      Get the most polular categories
    • Method Detail

      • getChildren

        @Auditable(parameters={"categoryRef","mode","depth"})
        java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getChildren​(org.alfresco.service.cmr.repository.NodeRef categoryRef,
                                                                                                  CategoryService.Mode mode,
                                                                                                  CategoryService.Depth depth)
        Get the children of a given category node
        Parameters:
        categoryRef - - the category node
        mode - - the enumeration mode for what to recover
        depth - - the enumeration depth for what level to recover
        Returns:
        a collection of all the nodes found identified by their ChildAssocRef's
      • getCategories

        @Auditable(parameters={"storeRef","aspectQName","depth"})
        java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                                                    org.alfresco.service.namespace.QName aspectQName,
                                                                                                    CategoryService.Depth depth)
        Get a list of all the categories appropriate for a given property. The full list of categories that may be assigned for this aspect.
        Parameters:
        storeRef - StoreRef
        aspectQName - QName
        depth - - the enumeration depth for what level to recover
        Returns:
        a collection of all the nodes found identified by their ChildAssocRef's
      • getClassifications

        @Auditable(parameters="storeRef")
        java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getClassifications​(org.alfresco.service.cmr.repository.StoreRef storeRef)
        Get all the classification entries
      • getRootCategories

        @Auditable(parameters={"storeRef","aspectName"})
        java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getRootCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                                                        org.alfresco.service.namespace.QName aspectName)
        Get the root categories for an aspect/classification
        Parameters:
        storeRef - StoreRef
        aspectName - QName
      • getRootCategories

        @Auditable(parameters={"storeRef","aspectName","pagingRequest","sortByName"})
        org.alfresco.query.PagingResults<org.alfresco.service.cmr.repository.ChildAssociationRef> getRootCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                                                                    org.alfresco.service.namespace.QName aspectName,
                                                                                                                    org.alfresco.query.PagingRequest pagingRequest,
                                                                                                                    boolean sortByName)
        Get a paged list of the root categories for an aspect/classification
        Parameters:
        storeRef - StoreRef
        aspectName - QName
        pagingRequest - PagingRequest
        sortByName - boolean
      • getRootCategories

        @Auditable(parameters={"storeRef","aspectName","pagingRequest","sortByName","filter"})
        org.alfresco.query.PagingResults<org.alfresco.service.cmr.repository.ChildAssociationRef> getRootCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                                                                    org.alfresco.service.namespace.QName aspectName,
                                                                                                                    org.alfresco.query.PagingRequest pagingRequest,
                                                                                                                    boolean sortByName,
                                                                                                                    java.lang.String filter)
        Get a paged list of the root categories for an aspect/classification
        Parameters:
        storeRef -
        aspectName -
        pagingRequest -
        sortByName -
        filter -
        Returns:
      • getRootCategories

        @Auditable(parameters={"storeRef","aspectName"})
        java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getRootCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                                                        org.alfresco.service.namespace.QName aspectName,
                                                                                                        java.lang.String filter)
        Get the root categories for an aspect/classification with names that start with filter
        Parameters:
        storeRef - StoreRef
        aspectName - QName
        filter - String
      • getCategory

        @Auditable(parameters={"storeRef","aspectName","name"})
        org.alfresco.service.cmr.repository.ChildAssociationRef getCategory​(org.alfresco.service.cmr.repository.NodeRef parent,
                                                                            org.alfresco.service.namespace.QName aspectName,
                                                                            java.lang.String name)
        Looks up a category by name under its immediate parent. Index-independent so can be used for cluster-safe existence checks.
        Parameters:
        parent - the parent
        aspectName - the aspect name
        name - the category name
        Returns:
        the category child association reference
      • getRootCategories

        @Auditable(parameters={"storeRef","aspectName","name","create"})
        java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getRootCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                                                        org.alfresco.service.namespace.QName aspectName,
                                                                                                        java.lang.String name,
                                                                                                        boolean create)
        Gets root categories by name, optionally creating one if one does not exist. Index-independent so can be used for cluster-safe existence checks.
        Parameters:
        storeRef - the store ref
        aspectName - the aspect name
        name - the aspect name
        create - should a category node be created if one does not exist?
        Returns:
        the root categories
      • getClassificationAspects

        @Auditable
        java.util.Collection<org.alfresco.service.namespace.QName> getClassificationAspects()
        Get all the types that represent categories
      • createClassification

        @Auditable(parameters={"storeRef","aspectName","attributeName"})
        org.alfresco.service.cmr.repository.NodeRef createClassification​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                         org.alfresco.service.namespace.QName aspectName,
                                                                         java.lang.String attributeName)
        Create a new category. This will extend the category types in the data dictionary All it needs is the type name and the attribute in which to store noderefs to categories.
        Parameters:
        storeRef - StoreRef
        aspectName - QName
        attributeName - String
      • createRootCategory

        @Auditable(parameters={"storeRef","aspectName","name"})
        org.alfresco.service.cmr.repository.NodeRef createRootCategory​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                       org.alfresco.service.namespace.QName aspectName,
                                                                       java.lang.String name)
        Create a new root category in the given classification
        Parameters:
        storeRef - StoreRef
        aspectName - QName
        name - String
        Returns:
        NodeRef
      • createCategory

        @Auditable(parameters={"parent","name"})
        org.alfresco.service.cmr.repository.NodeRef createCategory​(org.alfresco.service.cmr.repository.NodeRef parent,
                                                                   java.lang.String name)
        Create a new category.
        Parameters:
        parent - NodeRef
        name - String
        Returns:
        NodeRef
      • deleteClassification

        @Auditable(parameters={"storeRef","aspectName"})
        void deleteClassification​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                  org.alfresco.service.namespace.QName aspectName)
        Delete a classification
        Parameters:
        storeRef - StoreRef
        aspectName - QName
      • deleteCategory

        @Auditable(parameters="nodeRef")
        void deleteCategory​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Delete a category
        Parameters:
        nodeRef - NodeRef
      • getTopCategories

        @Auditable(parameters={"storeRef","aspectName","count"})
        java.util.List<org.alfresco.util.Pair<org.alfresco.service.cmr.repository.NodeRef,​java.lang.Integer>> getTopCategories​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                                                                                     org.alfresco.service.namespace.QName aspectName,
                                                                                                                                     int count)
        Get the most polular categories
        Parameters:
        storeRef - StoreRef
        aspectName - QName
        count - int
        Returns:
        List