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:NodeVisitorEvaluate aPropertyAccessnode.- Specified by:
evaluatein interfaceNodeVisitor<EvalResult>- Parameters:
propertyAccess- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(Identifier identifier)
Description copied from interface:NodeVisitorEvaluate anIdentifiernode.- Specified by:
evaluatein interfaceNodeVisitor<EvalResult>- Parameters:
identifier- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(StringConstant text)
Description copied from interface:NodeVisitorEvaluate aStringConstantnode.- Specified by:
evaluatein interfaceNodeVisitor<EvalResult>- Parameters:
text- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(BinaryOperation binaryOperation)
Description copied from interface:NodeVisitorEvaluate aBinaryOperationnode.- Specified by:
evaluatein interfaceNodeVisitor<EvalResult>- Parameters:
binaryOperation- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(BooleanConstant booleanConstant)
Description copied from interface:NodeVisitorEvaluate aBooleanConstantnode.- Specified by:
evaluatein interfaceNodeVisitor<EvalResult>- Parameters:
booleanConstant- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(NumericConstant numericConstant)
Description copied from interface:NodeVisitorEvaluate aNumericConstantnode.- Specified by:
evaluatein interfaceNodeVisitor<EvalResult>- Parameters:
numericConstant- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(UnaryOperation unaryOperation)
Description copied from interface:NodeVisitorEvaluate aUnaryOperationnode.- Specified by:
evaluatein interfaceNodeVisitor<EvalResult>- Parameters:
unaryOperation- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(TernaryOperator ternaryOperator)
Description copied from interface:NodeVisitorEvaluate aTernaryOperatornode.- Specified by:
evaluatein interfaceNodeVisitor<EvalResult>- Parameters:
ternaryOperator- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(RuntimeCall runtimeCall)
Description copied from interface:NodeVisitorEvaluate aRuntimeCallnode.- Specified by:
evaluatein interfaceNodeVisitor<EvalResult>- Parameters:
runtimeCall- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(MapLiteral mapLiteral)
Description copied from interface:NodeVisitorEvaluate aMapLiteralnode.- Specified by:
evaluatein interfaceNodeVisitor<EvalResult>- Parameters:
mapLiteral- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(ArrayLiteral arrayLiteral)
Description copied from interface:NodeVisitorEvaluate aArrayLiteralnode.- Specified by:
evaluatein interfaceNodeVisitor<EvalResult>- Parameters:
arrayLiteral- the node to evaluate- Returns:
- the evaluation result
-
evaluate
public EvalResult evaluate(NullLiteral nullLiteral)
Description copied from interface:NodeVisitorEvaluate aNullLiteralnode.- Specified by:
evaluatein interfaceNodeVisitor<EvalResult>- Parameters:
nullLiteral- the node to evaluate- Returns:
- the evaluation result
-
-