Class PolicyComponentImpl

  • All Implemented Interfaces:
    PolicyComponent

    public class PolicyComponentImpl
    extends java.lang.Object
    implements PolicyComponent
    Policy Component Implementation.
    Author:
    David Caruana
    • Constructor Detail

      • PolicyComponentImpl

        public PolicyComponentImpl​(org.alfresco.service.cmr.dictionary.DictionaryService dictionary)
        Construct
        Parameters:
        dictionary - dictionary service
    • Method Detail

      • setTryLockTimeout

        public void setTryLockTimeout​(long tryLockTimeout)
      • setBehaviourFilter

        public void setBehaviourFilter​(BehaviourFilter filter)
        Sets the behaviour filter
        Parameters:
        filter - BehaviourFilter
      • setTenantService

        public void setTenantService​(org.alfresco.repo.tenant.TenantService tenantService)
        Sets the tenant service
        Parameters:
        tenantService - TenantService
      • setTransactionInvocationHandlerFactory

        public void setTransactionInvocationHandlerFactory​(TransactionInvocationHandlerFactory factory)
        Sets the transaction-based policy invocation handler
        Parameters:
        factory - TransactionInvocationHandlerFactory
      • registerClassPolicy

        public <P extends ClassPolicyClassPolicyDelegate<P> registerClassPolicy​(java.lang.Class<P> policy)
        Description copied from interface: PolicyComponent
        Register a Class-level Policy
        Specified by:
        registerClassPolicy in interface PolicyComponent
        Type Parameters:
        P - the policy interface
        Parameters:
        policy - the policy interface class
        Returns:
        A delegate for the class-level policy (typed by the policy interface)
      • registerPropertyPolicy

        public <P extends PropertyPolicyPropertyPolicyDelegate<P> registerPropertyPolicy​(java.lang.Class<P> policy)
        Description copied from interface: PolicyComponent
        Register a Property-level Policy
        Specified by:
        registerPropertyPolicy in interface PolicyComponent
        Type Parameters:
        P - the policy interface
        Parameters:
        policy - the policy interface class
        Returns:
        A delegate for the property-level policy (typed by the policy interface)
      • registerAssociationPolicy

        public <P extends AssociationPolicyAssociationPolicyDelegate<P> registerAssociationPolicy​(java.lang.Class<P> policy)
        Description copied from interface: PolicyComponent
        Register a Association-level Policy
        Specified by:
        registerAssociationPolicy in interface PolicyComponent
        Type Parameters:
        P - the policy interface
        Parameters:
        policy - the policy interface class
        Returns:
        A delegate for the association-level policy (typed by the policy interface)
      • getRegisteredPolicy

        public PolicyDefinition getRegisteredPolicy​(PolicyType policyType,
                                                    org.alfresco.service.namespace.QName policy)
        Description copied from interface: PolicyComponent
        Gets the specified registered Policy
        Specified by:
        getRegisteredPolicy in interface PolicyComponent
        Parameters:
        policyType - the policy type
        policy - the policy name
        Returns:
        the policy definition (or null, if it has not been registered)
      • isRegisteredPolicy

        public boolean isRegisteredPolicy​(PolicyType policyType,
                                          org.alfresco.service.namespace.QName policy)
        Description copied from interface: PolicyComponent
        Determine if the specified policy has been registered
        Specified by:
        isRegisteredPolicy in interface PolicyComponent
        Parameters:
        policyType - the policy type
        policy - the fully qualified name of the policy
        Returns:
        true => registered, false => not yet
      • bindClassBehaviour

        public BehaviourDefinition<ClassBehaviourBinding> bindClassBehaviour​(org.alfresco.service.namespace.QName policy,
                                                                             org.alfresco.service.namespace.QName classRef,
                                                                             Behaviour behaviour)
        Description copied from interface: PolicyComponent
        Bind a Class specific behaviour to a Class-level Policy.

        So when the named policy, happens on the specified aspect or type, the specified behaviour is executed.

        Example of calling this method

                 this.policyComponent.bindClassBehaviour(
                   NodeServicePolicies.BeforeUpdateNodePolicy.QNAME,
                   ContentModel.ASPECT_LOCKABLE,
                   new JavaBehaviour(this, "beforeUpdateNode"));
         
        Specified by:
        bindClassBehaviour in interface PolicyComponent
        Parameters:
        policy - the fully qualified policy name
        classRef - the qualified name of a type or aspect that the policy is bound to
        behaviour - the behaviour. What gets executed by the policy
        Returns:
        the registered behaviour definition
      • bindClassBehaviour

        public BehaviourDefinition<ServiceBehaviourBinding> bindClassBehaviour​(org.alfresco.service.namespace.QName policy,
                                                                               java.lang.Object service,
                                                                               Behaviour behaviour)
        Description copied from interface: PolicyComponent
        Bind a Service behaviour to a Class-level Policy
        Specified by:
        bindClassBehaviour in interface PolicyComponent
        Parameters:
        policy - the fully qualified policy name
        service - the service (any object, in fact)
        behaviour - the behaviour. What gets executed by the policy
        Returns:
        the registered behaviour definition
      • bindPropertyBehaviour

        public BehaviourDefinition<ClassFeatureBehaviourBinding> bindPropertyBehaviour​(org.alfresco.service.namespace.QName policy,
                                                                                       org.alfresco.service.namespace.QName className,
                                                                                       org.alfresco.service.namespace.QName propertyName,
                                                                                       Behaviour behaviour)
        Description copied from interface: PolicyComponent
        Bind a Property specific behaviour to a Property-level Policy
        Specified by:
        bindPropertyBehaviour in interface PolicyComponent
        Parameters:
        policy - the fully qualified policy name
        className - the qualified name of the class (type or aspect) to bind against
        propertyName - the name of the property to bind against
        behaviour - the behaviour. What gets executed by the policy
        Returns:
        the registered behaviour definition
      • bindPropertyBehaviour

        public BehaviourDefinition<ClassFeatureBehaviourBinding> bindPropertyBehaviour​(org.alfresco.service.namespace.QName policy,
                                                                                       org.alfresco.service.namespace.QName className,
                                                                                       Behaviour behaviour)
        Description copied from interface: PolicyComponent
        Bind a Property specific behaviour to a Property-level Policy (for all properties of a Class)
        Specified by:
        bindPropertyBehaviour in interface PolicyComponent
        Parameters:
        policy - the fully qualified policy name
        className - the name of the class (type or aspect) to bind against
        behaviour - the behaviour, what gets executed by the policy
        Returns:
        the registered behaviour definition
      • bindPropertyBehaviour

        public BehaviourDefinition<ServiceBehaviourBinding> bindPropertyBehaviour​(org.alfresco.service.namespace.QName policy,
                                                                                  java.lang.Object service,
                                                                                  Behaviour behaviour)
        Description copied from interface: PolicyComponent
        Bind a Service specific behaviour to a Property-level Policy
        Specified by:
        bindPropertyBehaviour in interface PolicyComponent
        Parameters:
        policy - the fully qualified policy name
        service - the binding service
        behaviour - the behaviour
        Returns:
        the registered behaviour definition
      • bindAssociationBehaviour

        public BehaviourDefinition<ClassFeatureBehaviourBinding> bindAssociationBehaviour​(org.alfresco.service.namespace.QName policy,
                                                                                          org.alfresco.service.namespace.QName className,
                                                                                          org.alfresco.service.namespace.QName assocName,
                                                                                          Behaviour behaviour)
        Description copied from interface: PolicyComponent
        Bind an Association specific behaviour to an Association-level Policy

        For example, before a rule folder association is created.

                 policyComponent.bindAssociationBehaviour(
                   NodeServicePolicies.OnCreateChildAssociationPolicy.QNAME,
                   RuleModel.ASPECT_RULES,
                   RuleModel.ASSOC_RULE_FOLDER,
                   new JavaBehaviour(this, "OnCreateChildAssociation"));
         
        Specified by:
        bindAssociationBehaviour in interface PolicyComponent
        Parameters:
        policy - the policy name
        className - the name of the class (type or aspect) to bind against
        assocName - the name of the association to bind against
        behaviour - the behaviour. What gets executed by the policy
        Returns:
        the registered behaviour definition
      • bindAssociationBehaviour

        public BehaviourDefinition<ClassFeatureBehaviourBinding> bindAssociationBehaviour​(org.alfresco.service.namespace.QName policy,
                                                                                          org.alfresco.service.namespace.QName className,
                                                                                          Behaviour behaviour)
        Description copied from interface: PolicyComponent
        Bind an Association specific behaviour to an Association-level Policy (for all associations of a Class)
        Specified by:
        bindAssociationBehaviour in interface PolicyComponent
        Parameters:
        policy - the policy name
        className - the name of the class (type or aspect) to bind against
        behaviour - the behaviour. What gets executed by the policy
        Returns:
        the registered behaviour definition
      • bindAssociationBehaviour

        public BehaviourDefinition<ServiceBehaviourBinding> bindAssociationBehaviour​(org.alfresco.service.namespace.QName policy,
                                                                                     java.lang.Object service,
                                                                                     Behaviour behaviour)
        Description copied from interface: PolicyComponent
        Bind a Service specific behaviour to an Association-level Policy
        Specified by:
        bindAssociationBehaviour in interface PolicyComponent
        Parameters:
        policy - the policy name
        service - the binding service
        behaviour - the behaviour. What gets executed by the policy
        Returns:
        the registered behaviour definition