Package org.apache.sling.scripting.sightly.compiler.expression

## Interface NodeVisitor<T>

Type Parameters:
  `T` - the type of the object that's returned after an `ExpressionNode` evaluation

All Known Implementing Classes:
  `ExpressionReducer`, `NodeTransformer`, `SideEffectVisitor`, `VariableFinder`

    @ProviderType
    public interface NodeVisitor<T>

A `NodeVisitor` represents the mechanism through which `ExpressionNode` entities are processed.

### Method Summary

All Methods Instance Methods Abstract Methods
`T` `evaluate​(ArrayLiteral arrayLiteral)` Evaluate a `ArrayLiteral` node.
`T` `evaluate​(BinaryOperation binaryOperation)` Evaluate a `BinaryOperation` node.
`T` `evaluate​(BooleanConstant booleanConstant)` Evaluate a `BooleanConstant` node.
`T` `evaluate​(Identifier identifier)` Evaluate an `Identifier` node.
`T` `evaluate​(MapLiteral mapLiteral)` Evaluate a `MapLiteral` node.
`T` `evaluate​(NullLiteral nullLiteral)` Evaluate a `NullLiteral` node.
`T` `evaluate​(NumericConstant numericConstant)` Evaluate a `NumericConstant` node.
`T` `evaluate​(PropertyAccess propertyAccess)` Evaluate a `PropertyAccess` node.
`T` `evaluate​(RuntimeCall runtimeCall)` Evaluate a `RuntimeCall` node.
`T` `evaluate​(StringConstant text)` Evaluate a `StringConstant` node.
`T` `evaluate​(TernaryOperator ternaryOperator)` Evaluate a `TernaryOperator` node.
`T` `evaluate​(UnaryOperation unaryOperation)` Evaluate a `UnaryOperation` node.

### Method Detail

#### evaluate

    T evaluate​(PropertyAccess propertyAccess)

Evaluate a `PropertyAccess` node.

Parameters:
  `propertyAccess` - the node to evaluate
Returns:
  the evaluation result

#### evaluate

    T evaluate​(Identifier identifier)

Evaluate an `Identifier` node.

Parameters:
  `identifier` - the node to evaluate
Returns:
  the evaluation result

#### evaluate

    T evaluate​(StringConstant text)

Evaluate a `StringConstant` node.

Parameters:
  `text` - the node to evaluate
Returns:
  the evaluation result

#### evaluate

    T evaluate​(BinaryOperation binaryOperation)

Evaluate a `BinaryOperation` node.

Parameters:
  `binaryOperation` - the node to evaluate
Returns:
  the evaluation result

#### evaluate

    T evaluate​(BooleanConstant booleanConstant)

Evaluate a `BooleanConstant` node.

Parameters:
  `booleanConstant` - the node to evaluate
Returns:
  the evaluation result

#### evaluate

    T evaluate​(NumericConstant numericConstant)

Evaluate a `NumericConstant` node.

Parameters:
  `numericConstant` - the node to evaluate
Returns:
  the evaluation result

#### evaluate

    T evaluate​(UnaryOperation unaryOperation)

Evaluate a `UnaryOperation` node.

Parameters:
  `unaryOperation` - the node to evaluate
Returns:
  the evaluation result

#### evaluate

    T evaluate​(TernaryOperator ternaryOperator)

Evaluate a `TernaryOperator` node.

Parameters:
  `ternaryOperator` - the node to evaluate
Returns:
  the evaluation result

#### evaluate

    T evaluate​(RuntimeCall runtimeCall)

Evaluate a `RuntimeCall` node.

Parameters:
  `runtimeCall` - the node to evaluate
Returns:
  the evaluation result

#### evaluate

    T evaluate​(MapLiteral mapLiteral)

Evaluate a `MapLiteral` node.

Parameters:
  `mapLiteral` - the node to evaluate
Returns:
  the evaluation result

#### evaluate

    T evaluate​(ArrayLiteral arrayLiteral)

Evaluate a `ArrayLiteral` node.

Parameters:
  `arrayLiteral` - the node to evaluate
Returns:
  the evaluation result

#### evaluate

    T evaluate​(NullLiteral nullLiteral)

Evaluate a `NullLiteral` node.

Parameters:
  `nullLiteral` - the node to evaluate
Returns:
  the evaluation result