Class ExpressionProcessor

java.lang.Object
io.camunda.zeebe.engine.processing.common.ExpressionProcessor

public final class ExpressionProcessor extends Object
  • Constructor Details

  • Method Details

    • withPrimaryContext

      public ExpressionProcessor withPrimaryContext(io.camunda.zeebe.el.EvaluationContext primaryContext)
      Returns a new ExpressionProcessor instance. This new instance will use primaryContext for all lookups. Only if it doesn't find a variable in primaryContext, it will lookup variables in the evaluation context of this 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 new ExpressionProcessor instance. This new instance will use secondaryContext 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 evaluate
      scopeKey - 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 in DirectBuffer. If the evaluation fails or the result is not a string then a failure is returned.
      Parameters:
      expression - the expression to evaluate
      scopeKey - 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 evaluate
      scopeKey - 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 evaluate
      scopeKey - 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 evaluate
      scopeKey - 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 evaluate
      scopeKey - 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 as Optional. By using the isNullable 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 to true, an expression that evaluated to empty String or null is not considered a failure, but returns an Optional.empty() that needs to be handled by the caller of this method.

      Parameters:
      expression - the expression to evaluate
      scopeKey - the scope to load the variables from (a negative key is intended to imply an empty variable context)
      isNullable - set to true 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 evaluate
      scopeKey - 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 evaluate
      scopeKey - 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 evaluate
      scopeKey - 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 evaluate
      scopeKey - 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 evaluate
      scopeKey - 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