Package com.simplicite.util
Class Constraint
- java.lang.Object
-
- com.simplicite.util.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
Constraint.Rule
Rule definition = single condition to apply multiple impacts
-
Field Summary
Fields Modifier and Type Field Description static char
EFFECT_BACK
static char
EFFECT_FRONT
static char
EFFECT_STATIC
static char
FIELD_COPY
static char
FIELD_DEFAULT
static char
FIELD_FILTER
static char
FIELD_LOV
static char
FIELD_MANDATORY
static char
FIELD_NONE
static char
FIELD_SEARCH
static char
FIELD_UPDATE
static char
FIELD_VALUE
static char
FIELD_VISIBLE
static char
OBJECT_ACTION
static char
OBJECT_COPY
static char
OBJECT_CREATE
static char
OBJECT_DELETE
static char
OBJECT_EXPORT
static char
OBJECT_NONE
static char
OBJECT_PAGINE
static char
OBJECT_RESEARCH
static char
OBJECT_UPDALL
static char
OBJECT_UPDATE
static char
OBJECT_USEFORM
static char
TYPE_EXPR
static char
TYPE_FIELD
static char
TYPE_METHOD
-
Constructor Summary
Constructors Constructor Description Constraint()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 impactsvoid
addImpactObject(Constraint.Rule rule, java.lang.String expr, char objProp)
Add object impact, must be called in sequence to sort impactsvoid
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 impactsConstraint.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 ruleboolean
contains(ObjectField f)
Is field used by the constraint in conditions or impacts ?java.lang.String
generateImpactResource(ObjectCore obj, java.util.List<java.lang.String> impactedFields)
java.lang.String
generateImpactScript(ObjectDB obj, char effect, java.util.List<java.lang.String> impactedFields)
Resource
generateResource(ObjectCore obj)
Prepare a resource script for front-end usage (EFFECT_FRONT = javascript syntax)
Note that support for legacy web UI is limitedSharedScript
generateScript(ObjectDB obj, char effect)
Prepare a script for the object interpreter (back-end usage = rhino syntax)java.util.List<Constraint.Rule>
getRules(char effect)
Gets all rulesjava.lang.String
getScript(boolean objectImpact, boolean fieldImpact, boolean targetImpact, char effect)
Convert rules to script (not prepared)java.lang.String
getScriptObjectProp(char effect)
static java.lang.String
getTargetName(java.lang.String target)
Retrieve the target nameboolean
hasFieldImpact(char effect)
boolean
hasObjectImpact(char effect)
boolean
hasObjectPropImpact(char effect)
boolean
hasTargetImpact(char effect)
java.lang.String
toString()
-
-
-
Field Detail
-
TYPE_FIELD
public static final char TYPE_FIELD
- See Also:
- Constant Field Values
-
TYPE_METHOD
public static final char TYPE_METHOD
- See Also:
- Constant Field Values
-
TYPE_EXPR
public static final char TYPE_EXPR
- See Also:
- Constant Field Values
-
EFFECT_STATIC
public static final char EFFECT_STATIC
- See Also:
- Constant Field Values
-
EFFECT_BACK
public static final char EFFECT_BACK
- See Also:
- Constant Field Values
-
EFFECT_FRONT
public static final char EFFECT_FRONT
- See Also:
- Constant Field Values
-
FIELD_NONE
public static final char FIELD_NONE
- See Also:
- Constant Field Values
-
FIELD_COPY
public static final char FIELD_COPY
- See Also:
- Constant Field Values
-
FIELD_UPDATE
public static final char FIELD_UPDATE
- See Also:
- Constant Field Values
-
FIELD_VISIBLE
public static final char FIELD_VISIBLE
- See Also:
- Constant Field Values
-
FIELD_SEARCH
public static final char FIELD_SEARCH
- See Also:
- Constant Field Values
-
FIELD_MANDATORY
public static final char FIELD_MANDATORY
- See Also:
- Constant Field Values
-
FIELD_FILTER
public static final char FIELD_FILTER
- See Also:
- Constant Field Values
-
FIELD_DEFAULT
public static final char FIELD_DEFAULT
- See Also:
- Constant Field Values
-
FIELD_VALUE
public static final char FIELD_VALUE
- See Also:
- Constant Field Values
-
FIELD_LOV
public static final char FIELD_LOV
- See Also:
- Constant Field Values
-
OBJECT_NONE
public static final char OBJECT_NONE
- See Also:
- Constant Field Values
-
OBJECT_CREATE
public static final char OBJECT_CREATE
- See Also:
- Constant Field Values
-
OBJECT_COPY
public static final char OBJECT_COPY
- See Also:
- Constant Field Values
-
OBJECT_UPDATE
public static final char OBJECT_UPDATE
- See Also:
- Constant Field Values
-
OBJECT_DELETE
public static final char OBJECT_DELETE
- See Also:
- Constant Field Values
-
OBJECT_EXPORT
public static final char OBJECT_EXPORT
- See Also:
- Constant Field Values
-
OBJECT_UPDALL
public static final char OBJECT_UPDALL
- See Also:
- Constant Field Values
-
OBJECT_PAGINE
public static final char OBJECT_PAGINE
- See Also:
- Constant Field Values
-
OBJECT_RESEARCH
public static final char OBJECT_RESEARCH
- See Also:
- Constant Field Values
-
OBJECT_USEFORM
public static final char OBJECT_USEFORM
- See Also:
- Constant Field Values
-
OBJECT_ACTION
public static final char OBJECT_ACTION
- See Also:
- Constant Field Values
-
-
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 nametype
- Type TYPE_FIELD, TYPE_EXPR or TYPE_METHODfield
- Field for the type TYPE_FIELDexpr
- Expression for the type TYPE_EXPRmethod
- Method for the type TYPE_METHODgroups
- 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 ruleexpr
- Property expressionobjProp
- 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 ruleexpr
- Property expressionfieldProp
- Field propertyobjFieldId
- 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 ruleexpr
- Property expressiontarget
- 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 objecteffect
- 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
-
generateImpactResource
public java.lang.String generateImpactResource(ObjectCore obj, java.util.List<java.lang.String> impactedFields) throws ScriptException
- Throws:
ScriptException
-
generateResource
public Resource generateResource(ObjectCore obj)
Prepare a resource script for front-end usage (EFFECT_FRONT = javascript syntax)
Note that support for legacy web UI is limited- Parameters:
obj
- Business object- Returns:
- Resource script to extend the object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-