Expression

interface Expression

Known direct subclasses
Constant

Represents a constant.

ExpressionWithId

Represents an expression with random UUID.

Reference

Represents a reference to a previously defined node in the automation graph, or an list element for list comprehension expression .

Known indirect subclasses
And

The logical AND operator.

BetweenTimes

The between times operator, which evaluates to true when operand1 is between operand2 and operand3.

Between

The between operator, which evaluates to true when operand1 is between operand2 and operand3.

BinaryExpression

Represents a binary expression with two operands: "operand1 operator operand2".

Comprehension

Represents list comprehension expressions.

Divide

The DIVIDE operator, which calculates operand1 / operand2.

Equals

The equality operator, which evaluates to true when operand1 equals operand2.

FieldSelect

Select field(s) from a struct.

GreaterThanOrEquals

The greater-than-or-equal-to operator, which evaluates to true when operand1 >= operand2.

GreaterThan

The greater-than operator, which evaluates to true when operand1 > operand2.

LessThanOrEquals

The less-than-or-equal-to operator, which evaluates to true when operand1 <= operand2.

LessThan

The less-than operator, which evaluates to true when operand1 < operand2.

ListAllMatch

Represents the "all match" operation on a list expression.

ListAnyMatch

Represents the "any match" operation on a list expression.

ListContains

Represents the "contains" operation on a list expression.

ListFilter

Represents the "filter" operation on a list expression.

ListGet

Represents the "get" operation on a list expression.

ListIn

Represents the "in" operation on a list expression.

ListMap

Represents the map operation on a list expression.

ListNoneMatch

Represents the "none match" operation on a list expression.

ListSize

Represents the "size" operation on a list expression.

Minus

The MINUS operator, which calculates operand1 - operand2.

Multiply

The MULTIPLY operator, which calculates operand1 * operand2.

NotEquals

The not-equals operator, which evaluates to true when operand1 is not equal to operand2.

Not

The logical NOT operator.

Or

The logical OR operator.

Plus

The PLUS operator, which calculates operand1 + operand2.

TernaryExpression

Represents a ternary expression with three operands".

UnaryExpression

Represents a unary expression with one operand: "operator operand".

UnknownExpression

Represents an unknown expression.


An expression which evaluates to a value. Depending on the operator, this can be a literal expression such as a constant or a reference, a logical expression, a comparison expression or an arithemetic expression.