Class RecordServiceImpl

  • All Implemented Interfaces:
    RecordsManagementCustomModel, RecordsManagementModel, RecordService, org.alfresco.repo.content.ContentServicePolicies.OnContentUpdatePolicy, org.alfresco.repo.node.NodeServicePolicies.OnAddAspectPolicy, org.alfresco.repo.node.NodeServicePolicies.OnCreateChildAssociationPolicy, org.alfresco.repo.node.NodeServicePolicies.OnRemoveAspectPolicy, org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy, org.alfresco.repo.policy.annotation.BehaviourRegistry, org.alfresco.repo.policy.AssociationPolicy, org.alfresco.repo.policy.ClassPolicy, org.alfresco.repo.policy.Policy, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

    public class RecordServiceImpl
    extends BaseBehaviourBean
    implements RecordService, RecordsManagementModel, RecordsManagementCustomModel, org.alfresco.repo.node.NodeServicePolicies.OnAddAspectPolicy, org.alfresco.repo.node.NodeServicePolicies.OnCreateChildAssociationPolicy, org.alfresco.repo.node.NodeServicePolicies.OnRemoveAspectPolicy, org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy, org.alfresco.repo.content.ContentServicePolicies.OnContentUpdatePolicy
    Record service implementation.
    Since:
    2.1
    Author:
    Roy Wetherall
    • Constructor Detail

      • RecordServiceImpl

        public RecordServiceImpl()
    • Method Detail

      • setAlwaysEditURIs

        public void setAlwaysEditURIs​(List<String> alwaysEditURIs)
        Parameters:
        alwaysEditURIs - the alwaysEditURIs to set
      • getAlwaysEditURIs

        protected List<String> getAlwaysEditURIs()
        Returns:
        the alwaysEditURIs
      • setRecordModelURIs

        public void setRecordModelURIs​(List<String> recordModelURIs)
        Parameters:
        recordModelURIs - namespaces specific to records
      • setIdentifierService

        public void setIdentifierService​(IdentifierService identifierService)
        Parameters:
        identifierService - identifier service
      • setExtendedPermissionService

        public void setExtendedPermissionService​(ExtendedPermissionService extendedPermissionService)
        Parameters:
        extendedPermissionService - extended permission service
      • setExtendedSecurityService

        public void setExtendedSecurityService​(ExtendedSecurityService extendedSecurityService)
        Parameters:
        extendedSecurityService - extended security service
      • setFilePlanService

        public void setFilePlanService​(FilePlanService filePlanService)
        Parameters:
        filePlanService - file plan service
      • setPolicyComponent

        public void setPolicyComponent​(org.alfresco.repo.policy.PolicyComponent policyComponent)
        Parameters:
        policyComponent - policy component
      • setOwnableService

        public void setOwnableService​(org.alfresco.service.cmr.security.OwnableService ownableService)
        Parameters:
        ownableService - ownable service
      • setCapabilityService

        public void setCapabilityService​(CapabilityService capabilityService)
        Parameters:
        capabilityService - capability service
      • setRuleService

        public void setRuleService​(org.alfresco.service.cmr.rule.RuleService ruleService)
        Parameters:
        ruleService - rule service
      • setFileFolderService

        public void setFileFolderService​(org.alfresco.service.cmr.model.FileFolderService fileFolderService)
        Parameters:
        fileFolderService - file folder service
      • setRecordFolderService

        public void setRecordFolderService​(RecordFolderService recordFolderService)
        Parameters:
        recordFolderService - record folder service
      • setFilePlanRoleService

        public void setFilePlanRoleService​(FilePlanRoleService filePlanRoleService)
        Parameters:
        filePlanRoleService - file plan role service
      • setPermissionService

        public void setPermissionService​(org.alfresco.service.cmr.security.PermissionService permissionService)
        Parameters:
        permissionService - permission service
      • setVersionService

        public void setVersionService​(org.alfresco.service.cmr.version.VersionService versionService)
        Parameters:
        versionService - version service
      • setRelationshipService

        public void setRelationshipService​(RelationshipService relationshipService)
        Parameters:
        relationshipService - relationship service
      • setDispositionService

        public void setDispositionService​(DispositionService dispositionService)
        Parameters:
        dispositionService - disposition service
      • setRecordsManagementContainerType

        public void setRecordsManagementContainerType​(RecordsManagementContainerType recordsManagementContainerType)
        Parameters:
        recordsManagementContainerType - records management container type
      • setRecordableVersionService

        public void setRecordableVersionService​(RecordableVersionService recordableVersionService)
        Parameters:
        recordableVersionService - recordable version service
      • setIncompleteNodeTagger

        public void setIncompleteNodeTagger​(org.alfresco.repo.node.integrity.IncompleteNodeTagger incompleteNodeTagger)
      • setFreezeService

        public void setFreezeService​(FreezeService freezeService)
        Parameters:
        freezeService - freeze service
      • setNamespaceService

        public void setNamespaceService​(org.alfresco.service.namespace.NamespaceService namespaceService)
        Parameters:
        namespaceService - namespace service
      • setCheckMandatoryPropertiesEnabled

        public void setCheckMandatoryPropertiesEnabled​(boolean checkMandatoryPropertiesEnabled)
        Parameters:
        checkMandatoryPropertiesEnabled - true if check mandatory properties is enabled, false otherwise
      • init

        public void init()
        Init method
      • onAddAspect

        public void onAddAspect​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                org.alfresco.service.namespace.QName aspect)
        Specified by:
        onAddAspect in interface org.alfresco.repo.node.NodeServicePolicies.OnAddAspectPolicy
        See Also:
        NodeServicePolicies.OnAddAspectPolicy.onAddAspect(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.namespace.QName)
      • onRemoveAspect

        public void onRemoveAspect​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                   org.alfresco.service.namespace.QName aspect)
        Specified by:
        onRemoveAspect in interface org.alfresco.repo.node.NodeServicePolicies.OnRemoveAspectPolicy
        See Also:
        NodeServicePolicies.OnRemoveAspectPolicy.onRemoveAspect(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.namespace.QName)
      • onCreateChildAssociation

        public void onCreateChildAssociation​(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef,
                                             boolean bNew)
        Behaviour executed when a new item is added to a record folder.
        Specified by:
        onCreateChildAssociation in interface org.alfresco.repo.node.NodeServicePolicies.OnCreateChildAssociationPolicy
        See Also:
        NodeServicePolicies.OnCreateChildAssociationPolicy.onCreateChildAssociation(org.alfresco.service.cmr.repository.ChildAssociationRef, boolean)
      • onUpdateProperties

        public void onUpdateProperties​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                       Map<org.alfresco.service.namespace.QName,​Serializable> before,
                                       Map<org.alfresco.service.namespace.QName,​Serializable> after)
        Ensure that the user only updates record properties that they have permission to.
        Specified by:
        onUpdateProperties in interface org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy
        See Also:
        NodeServicePolicies.OnUpdatePropertiesPolicy.onUpdateProperties(org.alfresco.service.cmr.repository.NodeRef, java.util.Map, java.util.Map)
      • getRecordMetadataAspectsMap

        protected Map<org.alfresco.service.namespace.QName,​Set<org.alfresco.service.namespace.QName>> getRecordMetadataAspectsMap()
        Get map containing record metadata aspects.
        Returns:
        Map<QName, Set<QName >> map containing record metadata aspects
        Since:
        2.2
      • getRecordMetaDataAspects

        @Deprecated
        public Set<org.alfresco.service.namespace.QName> getRecordMetaDataAspects()
        Deprecated.
        since 2.2, file plan is required to provide context
        Description copied from interface: RecordService
        Gets a list of all the record meta-data aspects
        Specified by:
        getRecordMetaDataAspects in interface RecordService
        Returns:
        Set<QName> list of record meta-data aspects
      • getRecordMetadataAspects

        public Set<org.alfresco.service.namespace.QName> getRecordMetadataAspects​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Description copied from interface: RecordService
        Gets a list of all the record metadata aspects relevant to the file plan type of the file plan component provided.

        If a null context is provided all record meta-data aspects are returned, but this is not recommended.

        Specified by:
        getRecordMetadataAspects in interface RecordService
        Parameters:
        nodeRef - node reference to file plan component providing context
        Returns:
        Set<QName > list of record meta-data aspects
        See Also:
        RecordService.getRecordMetadataAspects(NodeRef)
      • getRecordMetadataAspects

        public Set<org.alfresco.service.namespace.QName> getRecordMetadataAspects​(org.alfresco.service.namespace.QName filePlanType)
        Description copied from interface: RecordService
        Gets a list of all the record metadata aspect that relate to the provided file plan type.

        If null is provided for the file plan type then record metadata aspects for the default file plan type (rma:filePlan) are returned.

        Specified by:
        getRecordMetadataAspects in interface RecordService
        Parameters:
        filePlanType - file plan type
        Returns:
        Set <QName > list of record meta-data aspects
        See Also:
        RecordService.getRecordMetadataAspects(org.alfresco.service.namespace.QName)
      • createRecord

        public void createRecord​(org.alfresco.service.cmr.repository.NodeRef filePlan,
                                 org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                 boolean isLinked)
        Description copied from interface: RecordService
        Creates a new unfiled record from an existing node.

        Note that the node reference of the record will be the same as the original document.

        Specified by:
        createRecord in interface RecordService
        Parameters:
        filePlan - The filePlan in which the record should be placed. filePlan can be null in this case the default RM site will be used.
        nodeRef - The node from which the record will be created
        isLinked - indicates if the newly created record is linked to it's original location or not.
        See Also:
        RecordService.createRecord(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.repository.NodeRef, boolean)
      • createRecord

        public void createRecord​(org.alfresco.service.cmr.repository.NodeRef filePlan,
                                 org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                 org.alfresco.service.cmr.repository.NodeRef destinationNodeRef,
                                 boolean isLinked)
        Description copied from interface: RecordService
        Creates a new record from an existing node and files it into the specified location.

        Note that the node reference of the record will be the same as the original document.

        Specified by:
        createRecord in interface RecordService
        Parameters:
        filePlan - The filePlan in which the record should be placed. filePlan can be null in this case the default RM site will be used.
        nodeRef - The node from which the record will be created
        destinationNodeRef - The container in which the record will be created
        isLinked - indicates if the newly created record is linked to it's original location or not.
        See Also:
        RecordService.createRecord(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.repository.NodeRef, boolean)
      • makeRecord

        public void makeRecord​(org.alfresco.service.cmr.repository.NodeRef document)
        Creates a record from the given document
        Specified by:
        makeRecord in interface RecordService
        Parameters:
        document - the document from which a record will be created
      • file

        public void file​(org.alfresco.service.cmr.repository.NodeRef record)
        Helper method to 'file' a new document that arrived in the file plan structure. TODO atm we only 'file' content as a record .. may need to consider other types if we are to support the notion of composite records.
        Specified by:
        file in interface RecordService
        Parameters:
        record - node reference to record (or soon to be record!)
      • isMetadataStub

        public boolean isMetadataStub​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Description copied from interface: RecordService
        Indicates whether the given node (record or record folder) is a metadata stub or not.
        Specified by:
        isMetadataStub in interface RecordService
        Parameters:
        nodeRef - node reference
        Returns:
        boolean true if a metadata stub, false otherwise
        See Also:
        RecordService.isMetadataStub(NodeRef)
      • getRecords

        public List<org.alfresco.service.cmr.repository.NodeRef> getRecords​(org.alfresco.service.cmr.repository.NodeRef recordFolder)
        Description copied from interface: RecordService
        Gets a list of all the records within a record folder
        Specified by:
        getRecords in interface RecordService
        Parameters:
        recordFolder - record folder
        Returns:
        List<NodeRef> list of records in the record folder
        See Also:
        RecordService.getRecords(NodeRef)
      • addRecordType

        public void addRecordType​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                  org.alfresco.service.namespace.QName typeQName)
        Description copied from interface: RecordService
        Adds the specified type to the record
        Specified by:
        addRecordType in interface RecordService
        Parameters:
        nodeRef - Record node reference
        typeQName - Type to add
        See Also:
        RecordService.addRecordType(NodeRef, QName)
      • link

        public void link​(org.alfresco.service.cmr.repository.NodeRef record,
                         org.alfresco.service.cmr.repository.NodeRef recordFolder)
        Description copied from interface: RecordService
        Links a record to a record folder
        Specified by:
        link in interface RecordService
        Parameters:
        record - the record to link
        recordFolder - the record folder to link it to
        See Also:
        RecordService.link(NodeRef, NodeRef)
      • onContentUpdate

        public void onContentUpdate​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                    boolean newContent)
        Specified by:
        onContentUpdate in interface org.alfresco.repo.content.ContentServicePolicies.OnContentUpdatePolicy
      • invokeBeforeRecordDeclaration

        protected void invokeBeforeRecordDeclaration​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Invoke invokeBeforeRecordDeclaration policy
        Parameters:
        nodeRef - node reference
      • invokeOnRecordDeclaration

        protected void invokeOnRecordDeclaration​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Invoke invokeOnRecordDeclaration policy
        Parameters:
        nodeRef - node reference
      • invokeBeforeRecordRejection

        protected void invokeBeforeRecordRejection​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Invoke invokeBeforeRecordRejection policy
        Parameters:
        nodeRef - node reference
      • invokeOnRecordRejection

        protected void invokeOnRecordRejection​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Invoke invokeOnRecordRejection policy
        Parameters:
        nodeRef - node reference
      • complete

        public void complete​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Completes a record
        Specified by:
        complete in interface RecordService
        Parameters:
        nodeRef - Record node reference