About the Technical Details of the Expression Language in Computed Fields
The
Codebeamer-specific Expression Language (EL) is built on
JBoss EL, which enhances
JSP 2.0 EL.
Features of
EL 2.1 or any major versions are not supported.
For more information about the Unified Expression Language, see
Java EE 5 Tutorial.
Implementation of the Codebeamer Expression Language
The Codebeamer-specific Expression Language is implemented in the com.intland.codebeamer.persistence.util.TrackerItemFilterEL Java class. This class provides the implementations for the following scenarios:
• The resolution of
Codebeamer-specific context variables (explained on the page
Context Variables) through the inner
FieldValueResolver Java class, which extends the
DefaultELResolver class
• Codebeamer-specific computed field functions
The com.intland.codebeamer.persistence.util.TrackerItemFilterEL Java class also supports the following actions:
• Creating an initial
ELContext for a specific
TrackerLayoutDto tracker and
TrackerItemDto item
• Parsing, compiling, and validating expressions in a specific context
• Executing compiled expressions in a specific context
Usage of the Codebeamer Expression Language
The Codebeamer internal APIs use the expression language for the following functionalities:
• Tracker field configuration
◦ To compute the field value as the result of an expression
◦ To hide the field when the expression yields a true value
◦ To declare the field as mandatory when the expression yields a true value
• Configurations related to the fields to update
◦ To compute the new value of the field as the result of an expression. This includes the following features:
▪ Mass edit
▪ Workflow actions, such as Update item properties, Update referring items, Create new Upstream / Downstream referring items
▪ State transition configuration to define the expression for a condition
• Specific tracker view types
◦ To convert TrackerItemFilterExpression into an appropriate TrackerItemFilterPredicate or TrackerItemUpdatePredicate
Example of a Custom Function
To see an example that extends the Expression Language with a custom function, refer to
Extending the Expression Language with Custom Functions.