Class NodesImpl

  • All Implemented Interfaces:
    Nodes

    public class NodesImpl
    extends java.lang.Object
    implements Nodes
    Centralises access to file/folder/node services and maps between representations. Note: This class was originally used for returning some basic node info when listing Favourites. It has now been re-purposed and extended to implement the new Nodes (RESTful) API for managing files & folders, as well as custom node types.
    Since:
    publicapi1.0
    Author:
    steveglover, janv, Jamal Kaabi-Mofrad
    • Constructor Summary

      Constructors 
      Constructor Description
      NodesImpl()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      java.util.List<AssocChild> addChildren​(java.lang.String parentNodeId, java.util.List<AssocChild> entities)  
      void addCustomAspects​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.List<java.lang.String> aspectNames, java.util.List<org.alfresco.service.namespace.QName> excludedAspects)
      Add aspects to the specified NodeRef.
      java.util.List<AssocTarget> addTargets​(java.lang.String sourceNodeId, java.util.List<AssocTarget> entities)  
      protected java.util.Set<org.alfresco.service.namespace.QName> buildAssocTypes​(org.alfresco.service.namespace.QName assocTypeQName)  
      protected org.alfresco.util.Pair<java.util.Set<org.alfresco.service.namespace.QName>,​java.util.Set<org.alfresco.service.namespace.QName>> buildSearchTypesAndIgnoreAspects​(Parameters parameters)  
      protected org.alfresco.util.Pair<java.util.Set<org.alfresco.service.namespace.QName>,​java.util.Set<org.alfresco.service.namespace.QName>> buildSearchTypesAndIgnoreAspects​(org.alfresco.service.namespace.QName nodeTypeQName, boolean includeSubTypes, java.util.Set<org.alfresco.service.namespace.QName> ignoreQNameTypes, java.lang.Boolean includeFiles, java.lang.Boolean includeFolders)  
      Node createNode​(java.lang.String parentFolderNodeId, Node nodeInfo, Parameters parameters)
      Create node - folder or (empty) file.
      org.alfresco.service.namespace.QName createQName​(java.lang.String qnameStr)
      Helper to create a QName from either a fully qualified or short-name QName string
      protected java.util.List<org.alfresco.service.namespace.QName> createQNames​(java.util.List<java.lang.String> qnameStrList, java.util.List<org.alfresco.service.namespace.QName> excludedProps)
      Helper to create a QName from either a fully qualified or short-name QName string
      protected void createVersion​(org.alfresco.service.cmr.repository.NodeRef nodeRef, boolean isVersioned, org.alfresco.service.cmr.version.VersionType versionType, java.lang.String reason)  
      void deleteNode​(java.lang.String nodeId, Parameters parameters)
      Delete the given node.
      protected static java.lang.String determineActivityType​(org.alfresco.rest.api.impl.NodesImpl.Activity_Type activity_type, boolean isFolder)  
      protected org.alfresco.service.cmr.action.ActionService getActionService()  
      protected org.alfresco.service.cmr.activities.ActivityInfo getActivityInfo​(org.alfresco.service.cmr.repository.NodeRef parentNodeRef, org.alfresco.service.cmr.repository.NodeRef nodeRef)  
      org.alfresco.service.namespace.QName getAssocType​(java.lang.String assocTypeQNameStr)  
      org.alfresco.service.namespace.QName getAssocType​(java.lang.String assocTypeQNameStr, boolean mandatory)  
      protected org.alfresco.service.cmr.security.AuthorityService getAuthorityService()  
      BinaryResource getContent​(java.lang.String fileNodeId, Parameters parameters, boolean recordActivity)
      Download file content.
      BinaryResource getContent​(org.alfresco.service.cmr.repository.NodeRef nodeRef, Parameters parameters, boolean recordActivity)
      Download file content.
      protected org.alfresco.service.cmr.repository.ContentService getContentService()  
      protected org.alfresco.service.cmr.dictionary.DictionaryService getDictionaryService()  
      Document getDocument​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Deprecated.
      note: currently required for backwards compat' (Favourites API)
      protected org.alfresco.service.cmr.model.FileFolderService getFileFolderService()  
      Folder getFolder​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Deprecated.
      note: currently required for backwards compat' (Favourites API)
      Node getFolderOrDocument​(java.lang.String nodeId, Parameters parameters)
      Get the folder or document representation (as appropriate) for the given node.
      Node getFolderOrDocument​(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.cmr.repository.NodeRef parentNodeRef, org.alfresco.service.namespace.QName nodeTypeQName, java.util.List<java.lang.String> includeParam, java.util.Map<java.lang.String,​UserInfo> mapUserInfo)
      Get the folder or document representation (as appropriate) for the given node.
      Node getFolderOrDocumentFullInfo​(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.cmr.repository.NodeRef parentNodeRef, org.alfresco.service.namespace.QName nodeTypeQName, Parameters parameters, java.util.Map<java.lang.String,​UserInfo> mapUserInfo)  
      protected java.util.List<org.alfresco.repo.node.getchildren.FilterProp> getListChildrenFilterProps​(Parameters parameters)
      Returns a List of filter properties specified by request parameters.
      protected java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,​java.lang.Boolean>> getListChildrenSortProps​(Parameters parameters)
      Returns a List of sort properties specified by the "sorting" request parameter.
      protected java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,​java.lang.Boolean>> getListChildrenSortPropsDefault()
      Returns the default sort order.
      protected org.alfresco.service.cmr.lock.LockService getLockService()  
      protected org.alfresco.service.cmr.repository.MimetypeService getMimetypeService()  
      protected org.alfresco.service.namespace.NamespaceService getNamespaceService()  
      Node getNode​(java.lang.String nodeId)
      Deprecated.
      review usage (backward compat')
      Node getNode​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Deprecated.
      review usage (backward compat')
      protected NodeAssocService getNodeAssocService()  
      protected org.alfresco.service.cmr.repository.NodeService getNodeService()  
      protected org.alfresco.service.cmr.security.OwnableService getOwnableService()  
      protected org.alfresco.service.cmr.security.PermissionService getPermissionService()  
      protected org.alfresco.service.cmr.security.PersonService getPersonService()  
      protected org.alfresco.service.cmr.activities.ActivityPoster getPoster()  
      protected QuickShareLinks getQuickShareLinks()  
      protected org.alfresco.repo.model.Repository getRepositoryHelper()  
      protected org.alfresco.repo.transaction.RetryingTransactionHelper getRetryingTransactionHelper()  
      protected org.alfresco.service.cmr.site.SiteService getSiteService()  
      protected org.alfresco.repo.virtual.store.VirtualStore getSmartStore()  
      protected org.alfresco.service.cmr.thumbnail.ThumbnailService getThumbnailService()  
      protected org.alfresco.service.cmr.version.VersionService getVersionService()  
      void init()  
      protected boolean isSpecialNode​(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName type)
      Check for special case: additional node validation (pending common lower-level service support) for blacklist of system nodes that should not be deleted or locked, eg.
      boolean isSubClass​(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName ofClassQName, boolean validateNodeRef)
      Determines whether the type of the given nodeRef is a sub-class of another class or not.
      CollectionWithPagingInfo<Node> listChildren​(java.lang.String parentFolderNodeId, Parameters parameters)
      Get list of children of a parent folder.
      Node lock​(java.lang.String nodeId, LockInfo lockInfo, Parameters parameters)
      Lock a node
      PathInfo lookupPathInfo​(org.alfresco.service.cmr.repository.NodeRef nodeRefIn, org.alfresco.service.cmr.repository.ChildAssociationRef archivedParentAssoc)
      Returns the path to the given nodeRef nodeRefIn or the archived nodeRef archivedParentAssoc.
      java.util.List<java.lang.String> mapFromNodeAspects​(java.util.Set<org.alfresco.service.namespace.QName> nodeAspects, java.util.List<java.lang.String> excludedNS, java.util.List<org.alfresco.service.namespace.QName> excludedAspects)
      Map from aspects (Set of QName) retrieved from the repository to a map List of String required that can be formatted/expressed as required by the API JSON response for get nodes, get person etc.
      java.util.Map<java.lang.String,​java.lang.Object> mapFromNodeProperties​(java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> nodeProps, java.util.List<java.lang.String> selectParam, java.util.Map<java.lang.String,​UserInfo> mapUserInfo, java.util.List<java.lang.String> excludedNS, java.util.List<org.alfresco.service.namespace.QName> excludedProps)
      Convert from node properties (map of QName to Serializable) retrieved from the respository to a map of String to Object that can be formatted/expressed as required by the API JSON response for get nodes, get person etc.
      java.util.Set<org.alfresco.service.namespace.QName> mapToNodeAspects​(java.util.List<java.lang.String> aspectNames)
      Map from a String representation of aspect names to a set of QName objects, as used by the repository.
      java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> mapToNodeProperties​(java.util.Map<java.lang.String,​java.lang.Object> props)
      Map from the JSON API format of properties (String to Object) to the typical node properties map used by the repository (QName to Serializable).
      protected org.alfresco.service.cmr.model.FileInfo moveOrCopyImpl​(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.cmr.repository.NodeRef parentNodeRef, java.lang.String name, boolean isCopy)  
      Node moveOrCopyNode​(java.lang.String sourceNodeId, java.lang.String targetParentId, java.lang.String name, Parameters parameters, boolean isCopy)
      Move or Copy node
      boolean nodeMatches​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Set<org.alfresco.service.namespace.QName> expectedTypes, java.util.Set<org.alfresco.service.namespace.QName> excludedTypes)  
      protected void postActivity​(org.alfresco.rest.api.impl.NodesImpl.Activity_Type activity_type, org.alfresco.service.cmr.activities.ActivityInfo activityInfo, boolean aSync)
      Posts activities based on the activity_type.
      protected void processNodePermissions​(org.alfresco.service.cmr.repository.NodeRef nodeRef, Node nodeInfo)  
      protected org.alfresco.service.cmr.repository.NodeRef resolveNodeByPath​(org.alfresco.service.cmr.repository.NodeRef parentNodeRef, java.lang.String path, boolean checkForCompanyHome)  
      void setBehaviourFilter​(org.alfresco.repo.policy.BehaviourFilter behaviourFilter)  
      void setIgnoreTypes​(java.util.Set<java.lang.String> ignoreTypesAndAspects)  
      void setNodeAssocService​(NodeAssocService nodeAssocService)  
      void setNonAttachContentTypes​(java.util.Set<java.lang.String> nonAttachWhiteList)  
      void setPoster​(org.alfresco.service.cmr.activities.ActivityPoster poster)  
      void setQuickShareLinks​(QuickShareLinks quickShareLinks)  
      void setRepositoryHelper​(org.alfresco.repo.model.Repository repositoryHelper)  
      void setServiceRegistry​(org.alfresco.service.ServiceRegistry sr)  
      void setSmartStore​(org.alfresco.repo.virtual.store.VirtualStore smartStore)  
      protected boolean typeMatches​(org.alfresco.service.namespace.QName type, java.util.Set<org.alfresco.service.namespace.QName> expectedTypes, java.util.Set<org.alfresco.service.namespace.QName> excludedTypes)  
      Node unlock​(java.lang.String nodeId, Parameters parameters)
      Unlock a node
      Node updateContent​(java.lang.String fileNodeId, BasicContentInfo contentInfo, java.io.InputStream stream, Parameters parameters)
      Uploads file content (updates existing node with new content).
      void updateCustomAspects​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.List<java.lang.String> aspectNames, java.util.List<org.alfresco.service.namespace.QName> excludedAspects)
      Update aspects for the specified NodeRef.
      Node updateNode​(java.lang.String nodeId, Node nodeInfo, Parameters parameters)
      Update node meta-data.
      protected org.alfresco.service.cmr.repository.NodeRef updateNodeImpl​(java.lang.String nodeId, Node nodeInfo, Parameters parameters)  
      Node upload​(java.lang.String parentFolderNodeId, org.springframework.extensions.webscripts.servlet.FormData formData, Parameters parameters)
      Uploads file content and meta-data into the repository.
      void validateAspects​(java.util.List<java.lang.String> aspectNames, java.util.List<java.lang.String> excludedNS, java.util.List<org.alfresco.service.namespace.QName> excludedAspects)  
      org.alfresco.service.cmr.repository.NodeRef validateNode​(java.lang.String nodeId)  
      org.alfresco.service.cmr.repository.NodeRef validateNode​(org.alfresco.service.cmr.repository.NodeRef nodeRef)  
      org.alfresco.service.cmr.repository.NodeRef validateNode​(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String nodeId)  
      org.alfresco.service.cmr.repository.NodeRef validateOrLookupNode​(java.lang.String nodeId, java.lang.String path)  
      void validateProperties​(java.util.Map<java.lang.String,​java.lang.Object> properties, java.util.List<java.lang.String> excludedNS, java.util.List<org.alfresco.service.namespace.QName> excludedProperties)  
      • Methods inherited from class java.lang.Object

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

      • PROPS_USERLOOKUP

        public static final java.util.List<org.alfresco.service.namespace.QName> PROPS_USERLOOKUP
      • PARAM_SYNONYMS_QNAME

        public static final java.util.Map<java.lang.String,​org.alfresco.service.namespace.QName> PARAM_SYNONYMS_QNAME
    • Constructor Detail

      • NodesImpl

        public NodesImpl()
    • Method Detail

      • setNonAttachContentTypes

        public void setNonAttachContentTypes​(java.util.Set<java.lang.String> nonAttachWhiteList)
      • init

        public void init()
      • setServiceRegistry

        public void setServiceRegistry​(org.alfresco.service.ServiceRegistry sr)
      • setBehaviourFilter

        public void setBehaviourFilter​(org.alfresco.repo.policy.BehaviourFilter behaviourFilter)
      • setRepositoryHelper

        public void setRepositoryHelper​(org.alfresco.repo.model.Repository repositoryHelper)
      • setQuickShareLinks

        public void setQuickShareLinks​(QuickShareLinks quickShareLinks)
      • setIgnoreTypes

        public void setIgnoreTypes​(java.util.Set<java.lang.String> ignoreTypesAndAspects)
      • setPoster

        public void setPoster​(org.alfresco.service.cmr.activities.ActivityPoster poster)
      • setNodeAssocService

        public void setNodeAssocService​(NodeAssocService nodeAssocService)
      • setSmartStore

        public void setSmartStore​(org.alfresco.repo.virtual.store.VirtualStore smartStore)
      • validateNode

        public org.alfresco.service.cmr.repository.NodeRef validateNode​(java.lang.String nodeId)
        Specified by:
        validateNode in interface Nodes
      • validateNode

        public org.alfresco.service.cmr.repository.NodeRef validateNode​(org.alfresco.service.cmr.repository.StoreRef storeRef,
                                                                        java.lang.String nodeId)
        Specified by:
        validateNode in interface Nodes
      • validateNode

        public org.alfresco.service.cmr.repository.NodeRef validateNode​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Specified by:
        validateNode in interface Nodes
      • nodeMatches

        public boolean nodeMatches​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                   java.util.Set<org.alfresco.service.namespace.QName> expectedTypes,
                                   java.util.Set<org.alfresco.service.namespace.QName> excludedTypes)
        Specified by:
        nodeMatches in interface Nodes
      • isSubClass

        public boolean isSubClass​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                  org.alfresco.service.namespace.QName ofClassQName,
                                  boolean validateNodeRef)
        Description copied from interface: Nodes
        Determines whether the type of the given nodeRef is a sub-class of another class or not.
        Specified by:
        isSubClass in interface Nodes
        Parameters:
        nodeRef - source nodeRef
        ofClassQName - the class to test against
        validateNodeRef - whether to validate the given source node or not
        Returns:
        true if the type of the given nodeRef is a sub-class of another class, otherwise false
      • typeMatches

        protected boolean typeMatches​(org.alfresco.service.namespace.QName type,
                                      java.util.Set<org.alfresco.service.namespace.QName> expectedTypes,
                                      java.util.Set<org.alfresco.service.namespace.QName> excludedTypes)
      • getNode

        public Node getNode​(java.lang.String nodeId)
        Deprecated.
        review usage (backward compat')
        Description copied from interface: Nodes
        Get the node representation for the given node.
        Specified by:
        getNode in interface Nodes
        Parameters:
        nodeId - String
        Returns:
        Node
      • getNode

        public Node getNode​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Deprecated.
        review usage (backward compat')
      • getDocument

        public Document getDocument​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Deprecated.
        note: currently required for backwards compat' (Favourites API)
        Description copied from interface: Nodes
        Get the document representation for the given node.
        Specified by:
        getDocument in interface Nodes
        Parameters:
        nodeRef - NodeRef
        Returns:
        Document
      • getFolder

        public Folder getFolder​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Deprecated.
        note: currently required for backwards compat' (Favourites API)
        Description copied from interface: Nodes
        Get the folder representation for the given node.
        Specified by:
        getFolder in interface Nodes
        Parameters:
        nodeRef - NodeRef
        Returns:
        Folder
      • validateOrLookupNode

        public org.alfresco.service.cmr.repository.NodeRef validateOrLookupNode​(java.lang.String nodeId,
                                                                                java.lang.String path)
        Specified by:
        validateOrLookupNode in interface Nodes
      • resolveNodeByPath

        protected org.alfresco.service.cmr.repository.NodeRef resolveNodeByPath​(org.alfresco.service.cmr.repository.NodeRef parentNodeRef,
                                                                                java.lang.String path,
                                                                                boolean checkForCompanyHome)
      • getFolderOrDocument

        public Node getFolderOrDocument​(java.lang.String nodeId,
                                        Parameters parameters)
        Description copied from interface: Nodes
        Get the folder or document representation (as appropriate) for the given node.
        Specified by:
        getFolderOrDocument in interface Nodes
        Parameters:
        nodeId - String nodeId or well-known alias, eg. "-root-" or "-my-"
        parameters - the Parameters object to get the parameters passed into the request including: - incPrimaryParent
        Returns:
      • getFolderOrDocumentFullInfo

        public Node getFolderOrDocumentFullInfo​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                                org.alfresco.service.cmr.repository.NodeRef parentNodeRef,
                                                org.alfresco.service.namespace.QName nodeTypeQName,
                                                Parameters parameters,
                                                java.util.Map<java.lang.String,​UserInfo> mapUserInfo)
        Specified by:
        getFolderOrDocumentFullInfo in interface Nodes
      • getFolderOrDocument

        public Node getFolderOrDocument​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                        org.alfresco.service.cmr.repository.NodeRef parentNodeRef,
                                        org.alfresco.service.namespace.QName nodeTypeQName,
                                        java.util.List<java.lang.String> includeParam,
                                        java.util.Map<java.lang.String,​UserInfo> mapUserInfo)
        Description copied from interface: Nodes
        Get the folder or document representation (as appropriate) for the given node.
        Specified by:
        getFolderOrDocument in interface Nodes
        Parameters:
        nodeRef - A real Node
        Returns:
      • lookupPathInfo

        public PathInfo lookupPathInfo​(org.alfresco.service.cmr.repository.NodeRef nodeRefIn,
                                       org.alfresco.service.cmr.repository.ChildAssociationRef archivedParentAssoc)
        Description copied from interface: Nodes
        Returns the path to the given nodeRef nodeRefIn or the archived nodeRef archivedParentAssoc.
        Specified by:
        lookupPathInfo in interface Nodes
        Parameters:
        nodeRefIn - the NodeRef
        archivedParentAssoc - the ChildAssociationRef of the archived NodeRef
        Returns:
        the path to the given node
      • mapToNodeAspects

        public java.util.Set<org.alfresco.service.namespace.QName> mapToNodeAspects​(java.util.List<java.lang.String> aspectNames)
        Description copied from interface: Nodes
        Map from a String representation of aspect names to a set of QName objects, as used by the repository.
        Specified by:
        mapToNodeAspects in interface Nodes
        Returns:
      • mapToNodeProperties

        public java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> mapToNodeProperties​(java.util.Map<java.lang.String,​java.lang.Object> props)
        Description copied from interface: Nodes
        Map from the JSON API format of properties (String to Object) to the typical node properties map used by the repository (QName to Serializable).
        Specified by:
        mapToNodeProperties in interface Nodes
        Returns:
      • mapFromNodeProperties

        public java.util.Map<java.lang.String,​java.lang.Object> mapFromNodeProperties​(java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> nodeProps,
                                                                                            java.util.List<java.lang.String> selectParam,
                                                                                            java.util.Map<java.lang.String,​UserInfo> mapUserInfo,
                                                                                            java.util.List<java.lang.String> excludedNS,
                                                                                            java.util.List<org.alfresco.service.namespace.QName> excludedProps)
        Description copied from interface: Nodes
        Convert from node properties (map of QName to Serializable) retrieved from the respository to a map of String to Object that can be formatted/expressed as required by the API JSON response for get nodes, get person etc.

        Returns null if there are no properties to return, rather than an empty map.

        Specified by:
        mapFromNodeProperties in interface Nodes
        Returns:
        The map of properties, or null if none to return.
      • mapFromNodeAspects

        public java.util.List<java.lang.String> mapFromNodeAspects​(java.util.Set<org.alfresco.service.namespace.QName> nodeAspects,
                                                                   java.util.List<java.lang.String> excludedNS,
                                                                   java.util.List<org.alfresco.service.namespace.QName> excludedAspects)
        Description copied from interface: Nodes
        Map from aspects (Set of QName) retrieved from the repository to a map List of String required that can be formatted/expressed as required by the API JSON response for get nodes, get person etc.

        Returns null if there are no aspect names to return, rather than an empty list.

        Specified by:
        mapFromNodeAspects in interface Nodes
        Returns:
        The list of aspect names, or null if none to return.
      • listChildren

        public CollectionWithPagingInfo<Node> listChildren​(java.lang.String parentFolderNodeId,
                                                           Parameters parameters)
        Description copied from interface: Nodes
        Get list of children of a parent folder.
        Specified by:
        listChildren in interface Nodes
        Parameters:
        parentFolderNodeId - String id of parent folder node or well-known alias, eg. "-root-" or "-my-"
        parameters - the Parameters object to get the parameters passed into the request including: - filter, sort & paging params (where, orderBy, skipCount, maxItems) - incFiles, incFolders (both true by default)
        Returns:
        a paged list of org.alfresco.rest.api.model.Node objects
      • getListChildrenFilterProps

        protected java.util.List<org.alfresco.repo.node.getchildren.FilterProp> getListChildrenFilterProps​(Parameters parameters)

        Returns a List of filter properties specified by request parameters.

        Parameters:
        parameters - The Parameters object to get the parameters passed into the request including: - filter, sort & paging params (where, orderBy, skipCount, maxItems) - incFiles, incFolders (both true by default)
        Returns:
        The list of FilterProp. Can be null.
      • getListChildrenSortProps

        protected java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,​java.lang.Boolean>> getListChildrenSortProps​(Parameters parameters)

        Returns a List of sort properties specified by the "sorting" request parameter.

        Parameters:
        parameters - The Parameters object to get the parameters passed into the request including: - filter, sort & paging params (where, orderBy, skipCount, maxItems) - incFiles, incFolders (both true by default)
        Returns:
        The list of Pair<QName, Boolean> sort properties. If no sort parameters are found defaults to getListChildrenSortPropsDefault.
      • getListChildrenSortPropsDefault

        protected java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,​java.lang.Boolean>> getListChildrenSortPropsDefault()

        Returns the default sort order.

        Returns:
        The list of Pair<QName, Boolean> sort properties.
      • buildAssocTypes

        protected java.util.Set<org.alfresco.service.namespace.QName> buildAssocTypes​(org.alfresco.service.namespace.QName assocTypeQName)
      • buildSearchTypesAndIgnoreAspects

        protected org.alfresco.util.Pair<java.util.Set<org.alfresco.service.namespace.QName>,​java.util.Set<org.alfresco.service.namespace.QName>> buildSearchTypesAndIgnoreAspects​(org.alfresco.service.namespace.QName nodeTypeQName,
                                                                                                                                                                                         boolean includeSubTypes,
                                                                                                                                                                                         java.util.Set<org.alfresco.service.namespace.QName> ignoreQNameTypes,
                                                                                                                                                                                         java.lang.Boolean includeFiles,
                                                                                                                                                                                         java.lang.Boolean includeFolders)
      • buildSearchTypesAndIgnoreAspects

        protected org.alfresco.util.Pair<java.util.Set<org.alfresco.service.namespace.QName>,​java.util.Set<org.alfresco.service.namespace.QName>> buildSearchTypesAndIgnoreAspects​(Parameters parameters)
      • deleteNode

        public void deleteNode​(java.lang.String nodeId,
                               Parameters parameters)
        Description copied from interface: Nodes
        Delete the given node. Note: will cascade delete for a folder.
        Specified by:
        deleteNode in interface Nodes
        Parameters:
        nodeId - String id of node (folder or document)
        parameters - the Parameters object to get the parameters passed into the request - permanent (default false)
      • createNode

        public Node createNode​(java.lang.String parentFolderNodeId,
                               Node nodeInfo,
                               Parameters parameters)
        Description copied from interface: Nodes
        Create node - folder or (empty) file.
        Specified by:
        createNode in interface Nodes
        Returns:
      • addCustomAspects

        public void addCustomAspects​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                     java.util.List<java.lang.String> aspectNames,
                                     java.util.List<org.alfresco.service.namespace.QName> excludedAspects)
        Description copied from interface: Nodes
        Add aspects to the specified NodeRef. Aspects that appear in the exclusions list will be ignored.
        Specified by:
        addCustomAspects in interface Nodes
      • addChildren

        public java.util.List<AssocChild> addChildren​(java.lang.String parentNodeId,
                                                      java.util.List<AssocChild> entities)
        Specified by:
        addChildren in interface Nodes
        Returns:
      • addTargets

        public java.util.List<AssocTarget> addTargets​(java.lang.String sourceNodeId,
                                                      java.util.List<AssocTarget> entities)
        Specified by:
        addTargets in interface Nodes
        Returns:
      • getAssocType

        public org.alfresco.service.namespace.QName getAssocType​(java.lang.String assocTypeQNameStr)
        Specified by:
        getAssocType in interface Nodes
      • getAssocType

        public org.alfresco.service.namespace.QName getAssocType​(java.lang.String assocTypeQNameStr,
                                                                 boolean mandatory)
        Specified by:
        getAssocType in interface Nodes
      • postActivity

        protected void postActivity​(org.alfresco.rest.api.impl.NodesImpl.Activity_Type activity_type,
                                    org.alfresco.service.cmr.activities.ActivityInfo activityInfo,
                                    boolean aSync)
        Posts activities based on the activity_type. If the method is called with aSync=true then a TransactionListener is used post the activity afterCommit. Otherwise the activity posting is done synchronously.
        Parameters:
        activity_type -
        activityInfo -
        aSync -
      • getActivityInfo

        protected org.alfresco.service.cmr.activities.ActivityInfo getActivityInfo​(org.alfresco.service.cmr.repository.NodeRef parentNodeRef,
                                                                                   org.alfresco.service.cmr.repository.NodeRef nodeRef)
      • determineActivityType

        protected static java.lang.String determineActivityType​(org.alfresco.rest.api.impl.NodesImpl.Activity_Type activity_type,
                                                                boolean isFolder)
      • isSpecialNode

        protected boolean isSpecialNode​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                        org.alfresco.service.namespace.QName type)
        Check for special case: additional node validation (pending common lower-level service support) for blacklist of system nodes that should not be deleted or locked, eg. Company Home, Sites, Data Dictionary
        Parameters:
        nodeRef -
        type -
        Returns:
      • updateNode

        public Node updateNode​(java.lang.String nodeId,
                               Node nodeInfo,
                               Parameters parameters)
        Description copied from interface: Nodes
        Update node meta-data.
        Specified by:
        updateNode in interface Nodes
        Returns:
      • updateNodeImpl

        protected org.alfresco.service.cmr.repository.NodeRef updateNodeImpl​(java.lang.String nodeId,
                                                                             Node nodeInfo,
                                                                             Parameters parameters)
      • processNodePermissions

        protected void processNodePermissions​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                              Node nodeInfo)
      • moveOrCopyNode

        public Node moveOrCopyNode​(java.lang.String sourceNodeId,
                                   java.lang.String targetParentId,
                                   java.lang.String name,
                                   Parameters parameters,
                                   boolean isCopy)
        Description copied from interface: Nodes
        Move or Copy node
        Specified by:
        moveOrCopyNode in interface Nodes
        Returns:
      • updateCustomAspects

        public void updateCustomAspects​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                        java.util.List<java.lang.String> aspectNames,
                                        java.util.List<org.alfresco.service.namespace.QName> excludedAspects)
        Description copied from interface: Nodes
        Update aspects for the specified NodeRef. An empty list will result in aspects being removed.
        Specified by:
        updateCustomAspects in interface Nodes
      • moveOrCopyImpl

        protected org.alfresco.service.cmr.model.FileInfo moveOrCopyImpl​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                                                         org.alfresco.service.cmr.repository.NodeRef parentNodeRef,
                                                                         java.lang.String name,
                                                                         boolean isCopy)
      • getContent

        public BinaryResource getContent​(java.lang.String fileNodeId,
                                         Parameters parameters,
                                         boolean recordActivity)
        Description copied from interface: Nodes
        Download file content.
        Specified by:
        getContent in interface Nodes
        recordActivity - true, if an activity post is required.
        Returns:
      • getContent

        public BinaryResource getContent​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                         Parameters parameters,
                                         boolean recordActivity)
        Description copied from interface: Nodes
        Download file content.
        Specified by:
        getContent in interface Nodes
        Parameters:
        nodeRef - the content nodeRef
        recordActivity - true, if an activity post is required.
        Returns:
      • updateContent

        public Node updateContent​(java.lang.String fileNodeId,
                                  BasicContentInfo contentInfo,
                                  java.io.InputStream stream,
                                  Parameters parameters)
        Description copied from interface: Nodes
        Uploads file content (updates existing node with new content). Note: may create a new version, depending on versioning behaviour.
        Specified by:
        updateContent in interface Nodes
        Returns:
      • createVersion

        protected void createVersion​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                     boolean isVersioned,
                                     org.alfresco.service.cmr.version.VersionType versionType,
                                     java.lang.String reason)
      • upload

        public Node upload​(java.lang.String parentFolderNodeId,
                           org.springframework.extensions.webscripts.servlet.FormData formData,
                           Parameters parameters)
        Description copied from interface: Nodes
        Uploads file content and meta-data into the repository.
        Specified by:
        upload in interface Nodes
        Parameters:
        parentFolderNodeId - String id of parent folder node or well-known alias, eg. "-root-" or "-my-"
        formData - the FormData
        parameters - the Parameters object to get the parameters passed into the request
        Returns:
        Node if successful
      • createQName

        public org.alfresco.service.namespace.QName createQName​(java.lang.String qnameStr)
        Helper to create a QName from either a fully qualified or short-name QName string
        Specified by:
        createQName in interface Nodes
        Parameters:
        qnameStr - Fully qualified or short-name QName string
        Returns:
        QName
      • createQNames

        protected java.util.List<org.alfresco.service.namespace.QName> createQNames​(java.util.List<java.lang.String> qnameStrList,
                                                                                    java.util.List<org.alfresco.service.namespace.QName> excludedProps)
        Helper to create a QName from either a fully qualified or short-name QName string
        Parameters:
        qnameStrList - list of fully qualified or short-name QName string
        excludedProps -
        Returns:
        a list of QName objects
      • lock

        public Node lock​(java.lang.String nodeId,
                         LockInfo lockInfo,
                         Parameters parameters)
        Description copied from interface: Nodes
        Lock a node
        Specified by:
        lock in interface Nodes
        Returns:
      • unlock

        public Node unlock​(java.lang.String nodeId,
                           Parameters parameters)
        Description copied from interface: Nodes
        Unlock a node
        Specified by:
        unlock in interface Nodes
        Returns:
      • validateAspects

        public void validateAspects​(java.util.List<java.lang.String> aspectNames,
                                    java.util.List<java.lang.String> excludedNS,
                                    java.util.List<org.alfresco.service.namespace.QName> excludedAspects)
        Specified by:
        validateAspects in interface Nodes
      • validateProperties

        public void validateProperties​(java.util.Map<java.lang.String,​java.lang.Object> properties,
                                       java.util.List<java.lang.String> excludedNS,
                                       java.util.List<org.alfresco.service.namespace.QName> excludedProperties)
        Specified by:
        validateProperties in interface Nodes
      • getNodeService

        protected org.alfresco.service.cmr.repository.NodeService getNodeService()
      • getDictionaryService

        protected org.alfresco.service.cmr.dictionary.DictionaryService getDictionaryService()
      • getFileFolderService

        protected org.alfresco.service.cmr.model.FileFolderService getFileFolderService()
      • getNamespaceService

        protected org.alfresco.service.namespace.NamespaceService getNamespaceService()
      • getPermissionService

        protected org.alfresco.service.cmr.security.PermissionService getPermissionService()
      • getMimetypeService

        protected org.alfresco.service.cmr.repository.MimetypeService getMimetypeService()
      • getContentService

        protected org.alfresco.service.cmr.repository.ContentService getContentService()
      • getActionService

        protected org.alfresco.service.cmr.action.ActionService getActionService()
      • getVersionService

        protected org.alfresco.service.cmr.version.VersionService getVersionService()
      • getPersonService

        protected org.alfresco.service.cmr.security.PersonService getPersonService()
      • getOwnableService

        protected org.alfresco.service.cmr.security.OwnableService getOwnableService()
      • getAuthorityService

        protected org.alfresco.service.cmr.security.AuthorityService getAuthorityService()
      • getThumbnailService

        protected org.alfresco.service.cmr.thumbnail.ThumbnailService getThumbnailService()
      • getSiteService

        protected org.alfresco.service.cmr.site.SiteService getSiteService()
      • getPoster

        protected org.alfresco.service.cmr.activities.ActivityPoster getPoster()
      • getRetryingTransactionHelper

        protected org.alfresco.repo.transaction.RetryingTransactionHelper getRetryingTransactionHelper()
      • getLockService

        protected org.alfresco.service.cmr.lock.LockService getLockService()
      • getSmartStore

        protected org.alfresco.repo.virtual.store.VirtualStore getSmartStore()
      • getRepositoryHelper

        protected org.alfresco.repo.model.Repository getRepositoryHelper()