Class Constraint

  • All Implemented Interfaces:
    java.io.Serializable

    public class Constraint
    extends java.lang.Object
    implements java.io.Serializable
    Constraint definition = List of rules with condition and impacts
    See Also:
    Serialized Form
    • Constructor Detail

      • Constraint

        public Constraint()
    • Method Detail

      • getRules

        public java.util.List<Constraint.Rule> getRules​(char effect)
        Gets all rules
        Parameters:
        effect - from EFFECT_*
        Returns:
        rules
      • hasObjectImpact

        public boolean hasObjectImpact​(char effect)
      • hasFieldImpact

        public boolean hasFieldImpact​(char effect)
      • hasTargetImpact

        public boolean hasTargetImpact​(char effect)
      • hasObjectPropImpact

        public boolean hasObjectPropImpact​(char effect)
      • addRule

        public Constraint.Rule addRule​(java.lang.String name,
                                       char type,
                                       java.lang.String field,
                                       java.lang.String expr,
                                       java.lang.String method,
                                       java.util.List<java.lang.String> groups,
                                       java.lang.String effects)
        Add a constraint rule
        Parameters:
        name - Constraint name
        type - Type TYPE_FIELD, TYPE_EXPR or TYPE_METHOD
        field - Field for the type TYPE_FIELD
        expr - Expression for the type TYPE_EXPR
        method - Method for the type TYPE_METHOD
        groups - Groups on witch constraint applies (all if null)
        effects - Rule effects on EFFECT_*
        Returns:
        Rule
      • addImpactObject

        public void addImpactObject​(Constraint.Rule rule,
                                    java.lang.String expr,
                                    char objProp)
        Add object impact, must be called in sequence to sort impacts
        Parameters:
        rule - Constraint rule
        expr - Property expression
        objProp - Object property
      • addImpactField

        public void addImpactField​(Constraint.Rule rule,
                                   java.lang.String expr,
                                   char fieldProp,
                                   java.lang.String objFieldId)
        Add field impact, must be called in sequence to sort impacts
        Parameters:
        rule - Constraint rule
        expr - Property expression
        fieldProp - Field property
        objFieldId - Object field id
      • addImpactTarget

        public void addImpactTarget​(Constraint.Rule rule,
                                    java.lang.String expr,
                                    java.lang.String target,
                                    java.lang.String name)
        Add an impact, must be called in sequence to sort impacts
        Parameters:
        rule - Constraint rule
        expr - Property expression
        target - Targeted object (Action:id, Link:id or View:id)
        name - Target name (action name, reference;fk or view name)
      • getScript

        public java.lang.String getScript​(boolean objectImpact,
                                          boolean fieldImpact,
                                          boolean targetImpact,
                                          char effect)
        Convert rules to script (not prepared)
        Parameters:
        objectImpact - Object impact?
        fieldImpact - Field impact?
        targetImpact - Target impact?
        effect - Effect
      • getScriptObjectProp

        public java.lang.String getScriptObjectProp​(char effect)
      • getTargetName

        public static java.lang.String getTargetName​(java.lang.String target)
        Retrieve the target name
        Parameters:
        target - Meta-object object:row_id
        Returns:
        target name
      • generateImpactScript

        public java.lang.String generateImpactScript​(ObjectDB obj,
                                                     char effect,
                                                     java.util.List<java.lang.String> impactedFields)
                                              throws ScriptException
        Throws:
        ScriptException
      • generateScript

        public SharedScript generateScript​(ObjectDB obj,
                                           char effect)
        Prepare a script for the object interpreter (back-end usage = rhino syntax)
        Parameters:
        obj - Business object
        effect - EFFECT_BACK or EFFECT_STATIC
        Returns:
        Shared script to extend the object script
      • contains

        public boolean contains​(ObjectField f)
        Is field used by the constraint in conditions or impacts ?
        Parameters:
        f - Field
        Returns:
        true if field is used by constraint
      • generateResource

        public Resource generateResource​(ObjectCore obj)
        Prepare a resource script for front-end usage (EFFECT_FRONT = javascript syntax)
        Parameters:
        obj - Business object
        Returns:
        Resource script to extend the object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object