Class ExpressionProcessor
java.lang.Object
io.camunda.zeebe.engine.processing.common.ExpressionProcessor
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
static final class
-
Constructor Summary
ConstructorsConstructorDescriptionExpressionProcessor
(io.camunda.zeebe.el.ExpressionLanguage expressionLanguage, ExpressionProcessor.EvaluationContextLookup lookup) -
Method Summary
Modifier and TypeMethodDescriptionevaluateAnyExpression
(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result no matter the type.evaluateArrayExpression
(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as a list.evaluateArrayOfStringsExpression
(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as a list of strings.evaluateBooleanExpression
(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as boolean.evaluateDateTimeExpression
(io.camunda.zeebe.el.Expression expression, Long scopeKey) Evaluates the given expression and returns the result as ZonedDateTime.evaluateDateTimeExpression
(io.camunda.zeebe.el.Expression expression, Long scopeKey, boolean isNullable) Evaluates the given expression and returns the result asOptional
.evaluateIntervalExpression
(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as an Interval.evaluateLongExpression
(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as long.evaluateMessageCorrelationKeyExpression
(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as String.evaluateStringExpression
(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as string.evaluateStringExpressionAsDirectBuffer
(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as string wrapped inDirectBuffer
.evaluateVariableMappingExpression
(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression of a variable mapping and returns the result as buffer.withPrimaryContext
(io.camunda.zeebe.el.EvaluationContext primaryContext) Returns a newExpressionProcessor
instance.withSecondaryContext
(io.camunda.zeebe.el.EvaluationContext secondaryContext) Returns a newExpressionProcessor
instance.
-
Constructor Details
-
ExpressionProcessor
public ExpressionProcessor(io.camunda.zeebe.el.ExpressionLanguage expressionLanguage, ExpressionProcessor.EvaluationContextLookup lookup)
-
-
Method Details
-
withPrimaryContext
Returns a newExpressionProcessor
instance. This new instance will useprimaryContext
for all lookups. Only if it doesn't find a variable inprimaryContext
, it will lookup variables in the evaluation context ofthis
evaluation processor- Parameters:
primaryContext
- new top level evaluation context- Returns:
- new instance which uses
primaryContext
as new top level evaluation context
-
withSecondaryContext
public ExpressionProcessor withSecondaryContext(io.camunda.zeebe.el.EvaluationContext secondaryContext) Returns a newExpressionProcessor
instance. This new instance will usesecondaryContext
for all lookups which it cannot find in its primary evaluation context- Parameters:
secondaryContext
- fallback evaluation context- Returns:
- new instance which uses
secondaryContext
as fallback
-
evaluateStringExpression
public Either<Failure,String> evaluateStringExpression(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as string. If the evaluation fails or the result is not a string then a failure is returned.- Parameters:
expression
- the expression to evaluatescopeKey
- the scope to load the variables from (a negative key is intended to imply an empty variable context)- Returns:
- either the evaluation result as string, or a failure
-
evaluateStringExpressionAsDirectBuffer
public Either<Failure,org.agrona.DirectBuffer> evaluateStringExpressionAsDirectBuffer(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as string wrapped inDirectBuffer
. If the evaluation fails or the result is not a string then a failure is returned.- Parameters:
expression
- the expression to evaluatescopeKey
- the scope to load the variables from (a negative key is intended to imply an empty variable context)- Returns:
- either the evaluation result as buffer, or a failure
-
evaluateLongExpression
public Either<Failure,Long> evaluateLongExpression(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as long. If the evaluation fails or the result is not a number then a failure is returned.- Parameters:
expression
- the expression to evaluatescopeKey
- the scope to load the variables from (a negative key is intended to imply an empty variable context)- Returns:
- either the evaluation result as long, or a failure
-
evaluateBooleanExpression
public Either<Failure,Boolean> evaluateBooleanExpression(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as boolean. If the evaluation fails or the result is not a boolean then a failure is returned.- Parameters:
expression
- the expression to evaluatescopeKey
- the scope to load the variables from (a negative key is intended to imply an empty variable context)- Returns:
- either the evaluation result as boolean, or a failure
-
evaluateIntervalExpression
public Either<Failure,Interval> evaluateIntervalExpression(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as an Interval. If the evaluation fails or the result is not an interval then a failure is returned.- Parameters:
expression
- the expression to evaluatescopeKey
- the scope to load the variables from (a negative key is intended to imply an empty variable context)- Returns:
- either the evaluation result as interval or a failure
-
evaluateDateTimeExpression
public Either<Failure,ZonedDateTime> evaluateDateTimeExpression(io.camunda.zeebe.el.Expression expression, Long scopeKey) Evaluates the given expression and returns the result as ZonedDateTime. If the evaluation fails or the result is not a ZonedDateTime then a failure is returned.- Parameters:
expression
- the expression to evaluatescopeKey
- the scope to load the variables from (a negative key is intended to imply an empty variable context)- Returns:
- either the evaluation result as ZonedDateTime or a failure
- Throws:
ExpressionProcessor.EvaluationException
- if expression evaluation failed
-
evaluateDateTimeExpression
public Either<Failure,Optional<ZonedDateTime>> evaluateDateTimeExpression(io.camunda.zeebe.el.Expression expression, Long scopeKey, boolean isNullable) Evaluates the given expression and returns the result asOptional
. By using theisNullable
flag, it is also possible to control the behavior if a given expression evaluates to an empty String or null.A failure is returned if the expression evaluation fails, or the result is not a valid ZonedDateTime String. If the
isNullable
flag is set totrue
, an expression that evaluated to empty String or null is not considered a failure, but returns anOptional.empty()
that needs to be handled by the caller of this method.- Parameters:
expression
- the expression to evaluatescopeKey
- the scope to load the variables from (a negative key is intended to imply an empty variable context)isNullable
- set totrue
to ignore empty String or null values instead of returning a failure- Returns:
- either the evaluation result as ZonedDateTime or a failure
- Throws:
ExpressionProcessor.EvaluationException
- if expression evaluation failed
-
evaluateAnyExpression
public Either<Failure,org.agrona.DirectBuffer> evaluateAnyExpression(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result no matter the type.- Parameters:
expression
- the expression to evaluatescopeKey
- the scope to load the variables from (a negative key is intended to imply an empty variable context)- Returns:
- either the evaluation result as buffer, or a failure if the evaluation fails
-
evaluateArrayExpression
public Either<Failure,List<org.agrona.DirectBuffer>> evaluateArrayExpression(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as a list. The entries of the list are encoded in MessagePack and can have any type.- Parameters:
expression
- the expression to evaluatescopeKey
- the scope to load the variables from (a negative key is intended to imply an empty variable context)- Returns:
- either the evaluation result as a list, or a failure if the evaluation fails
-
evaluateArrayOfStringsExpression
public Either<Failure,List<String>> evaluateArrayOfStringsExpression(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as a list of strings.- Parameters:
expression
- the expression to evaluatescopeKey
- the scope to load the variables from (a negative key is intended to imply an empty variable context)- Returns:
- either the evaluation result as a list of regular strings, or a failure if the evaluation fails
-
evaluateMessageCorrelationKeyExpression
public Either<Failure,String> evaluateMessageCorrelationKeyExpression(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression and returns the result as String. If the evaluation result is a number it is automatically converted to a string.- Parameters:
expression
- the expression to evaluatescopeKey
- the scope to load the variables from (a negative key is intended to imply an empty variable context)- Returns:
- either the evaluation result as String, or a failure if the evaluation fails
-
evaluateVariableMappingExpression
public Either<Failure,org.agrona.DirectBuffer> evaluateVariableMappingExpression(io.camunda.zeebe.el.Expression expression, long scopeKey) Evaluates the given expression of a variable mapping and returns the result as buffer. If the evaluation fails or the result is not a context then a failure is returned.- Parameters:
expression
- the expression to evaluatescopeKey
- the scope to load the variables from (a negative key is intended to imply an empty variable context)- Returns:
- either the evaluation result as buffer, or a failure
-