Class PolicyComponentImpl

    • Constructor Detail

      • PolicyComponentImpl

        public PolicyComponentImpl​(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​(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​(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)
      • getRegisteredPolicy

        public PolicyDefinition getRegisteredPolicy​(PolicyType policyType,
                                                    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,
                                          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​(QName policy,
                                                                             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
      • bindPropertyBehaviour

        public BehaviourDefinition<ClassFeatureBehaviourBinding> bindPropertyBehaviour​(QName policy,
                                                                                       QName className,
                                                                                       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​(QName policy,
                                                                                       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
      • bindAssociationBehaviour

        public BehaviourDefinition<ClassFeatureBehaviourBinding> bindAssociationBehaviour​(QName policy,
                                                                                          QName className,
                                                                                          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​(QName policy,
                                                                                          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