Class ExpressionReducer
- java.lang.Object
-
- org.apache.sling.scripting.sightly.impl.compiler.optimization.reduce.ExpressionReducer
-
- All Implemented Interfaces:
NodeVisitor<EvalResult>
public class ExpressionReducer extends Object implements NodeVisitor<EvalResult>
Try to evaluate constant parts in expressions
-
-
Method Summary
-
-
-
Method Detail
-
reduce
public static EvalResult reduce(ExpressionNode node, VariableTracker<EvalResult> tracker)
-
evaluate
public EvalResult evaluate(PropertyAccess propertyAccess)
Description copied from interface:NodeVisitor
Evaluate aPropertyAccess
node.- Specified by:
evaluate
in interfaceNodeVisitor<EvalResult>
- Parameters:
propertyAccess
- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(Identifier identifier)
Description copied from interface:NodeVisitor
Evaluate anIdentifier
node.- Specified by:
evaluate
in interfaceNodeVisitor<EvalResult>
- Parameters:
identifier
- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(StringConstant text)
Description copied from interface:NodeVisitor
Evaluate aStringConstant
node.- Specified by:
evaluate
in interfaceNodeVisitor<EvalResult>
- Parameters:
text
- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(BinaryOperation binaryOperation)
Description copied from interface:NodeVisitor
Evaluate aBinaryOperation
node.- Specified by:
evaluate
in interfaceNodeVisitor<EvalResult>
- Parameters:
binaryOperation
- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(BooleanConstant booleanConstant)
Description copied from interface:NodeVisitor
Evaluate aBooleanConstant
node.- Specified by:
evaluate
in interfaceNodeVisitor<EvalResult>
- Parameters:
booleanConstant
- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(NumericConstant numericConstant)
Description copied from interface:NodeVisitor
Evaluate aNumericConstant
node.- Specified by:
evaluate
in interfaceNodeVisitor<EvalResult>
- Parameters:
numericConstant
- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(UnaryOperation unaryOperation)
Description copied from interface:NodeVisitor
Evaluate aUnaryOperation
node.- Specified by:
evaluate
in interfaceNodeVisitor<EvalResult>
- Parameters:
unaryOperation
- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(TernaryOperator ternaryOperator)
Description copied from interface:NodeVisitor
Evaluate aTernaryOperator
node.- Specified by:
evaluate
in interfaceNodeVisitor<EvalResult>
- Parameters:
ternaryOperator
- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(RuntimeCall runtimeCall)
Description copied from interface:NodeVisitor
Evaluate aRuntimeCall
node.- Specified by:
evaluate
in interfaceNodeVisitor<EvalResult>
- Parameters:
runtimeCall
- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(MapLiteral mapLiteral)
Description copied from interface:NodeVisitor
Evaluate aMapLiteral
node.- Specified by:
evaluate
in interfaceNodeVisitor<EvalResult>
- Parameters:
mapLiteral
- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(ArrayLiteral arrayLiteral)
Description copied from interface:NodeVisitor
Evaluate aArrayLiteral
node.- Specified by:
evaluate
in interfaceNodeVisitor<EvalResult>
- Parameters:
arrayLiteral
- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(NullLiteral nullLiteral)
Description copied from interface:NodeVisitor
Evaluate aNullLiteral
node.- Specified by:
evaluate
in interfaceNodeVisitor<EvalResult>
- Parameters:
nullLiteral
- the node to evaluate- Returns:
- the evaluation result
-
-