Package org.apache.commons.jexl3.parser
Class FeatureController
- java.lang.Object
-
- org.apache.commons.jexl3.parser.ParserVisitor
-
- org.apache.commons.jexl3.internal.ScriptVisitor
-
- org.apache.commons.jexl3.parser.FeatureController
-
public class FeatureController extends ScriptVisitor
Controls that a script only uses enabled features.
-
-
Field Summary
Fields Modifier and Type Field Description private JexlFeaturesfeaturesThe set of features.
-
Constructor Summary
Constructors Constructor Description FeatureController(JexlFeatures features)Creates a feature controller.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcontrolNode(JexlNode node)Perform the control on a node.private java.lang.ObjectcontrolSideEffect(JexlNode node, java.lang.Object data)JexlFeaturesgetFeatures()private booleanisArrayReferenceLiteral(JexlNode child)Checks whether a node is a string or an integer.voidsetFeatures(JexlFeatures fdesc)Sets the features to controlNode.voidthrowFeatureException(int feature, JexlNode node)Throws a feature exception.protected java.lang.Objectvisit(ASTAnnotation node, java.lang.Object data)protected java.lang.Objectvisit(ASTArrayAccess node, java.lang.Object data)protected java.lang.Objectvisit(ASTArrayLiteral node, java.lang.Object data)protected java.lang.Objectvisit(ASTAssignment node, java.lang.Object data)protected java.lang.Objectvisit(ASTConstructorNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTDecrementGetNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTDoWhileStatement node, java.lang.Object data)protected java.lang.Objectvisit(ASTForeachStatement node, java.lang.Object data)protected java.lang.Objectvisit(ASTGetDecrementNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTGetIncrementNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTIncrementGetNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTMapLiteral node, java.lang.Object data)protected java.lang.Objectvisit(ASTMethodNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTRangeNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTSetAddNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTSetAndNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTSetDivNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTSetLiteral node, java.lang.Object data)protected java.lang.Objectvisit(ASTSetModNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTSetMultNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTSetOrNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTSetShiftLeftNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTSetShiftRightNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTSetShiftRightUnsignedNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTSetSubNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTSetXorNode node, java.lang.Object data)protected java.lang.Objectvisit(ASTTryStatement node, java.lang.Object data)protected java.lang.Objectvisit(ASTWhileStatement node, java.lang.Object data)protected java.lang.ObjectvisitNode(JexlNode node, java.lang.Object data)Visits a node.-
Methods inherited from class org.apache.commons.jexl3.internal.ScriptVisitor
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitExpression, visitScript
-
Methods inherited from class org.apache.commons.jexl3.parser.ParserVisitor
visit, visit
-
-
-
-
Field Detail
-
features
private JexlFeatures features
The set of features.
-
-
Constructor Detail
-
FeatureController
public FeatureController(JexlFeatures features)
Creates a feature controller.
-
-
Method Detail
-
controlNode
public void controlNode(JexlNode node)
Perform the control on a node.Note that controlNode() does *not* visit node children in this class.
- Parameters:
node- the node to controlNode- Throws:
JexlException.Feature- if required feature is disabled
-
controlSideEffect
private java.lang.Object controlSideEffect(JexlNode node, java.lang.Object data)
-
getFeatures
public JexlFeatures getFeatures()
- Returns:
- the controlled features
-
isArrayReferenceLiteral
private boolean isArrayReferenceLiteral(JexlNode child)
Checks whether a node is a string or an integer.- Parameters:
child- the child node- Returns:
- true if string / integer, false otherwise
-
setFeatures
public void setFeatures(JexlFeatures fdesc)
Sets the features to controlNode.- Parameters:
fdesc- the features
-
throwFeatureException
public void throwFeatureException(int feature, JexlNode node)Throws a feature exception.- Parameters:
feature- the feature codenode- the node that caused it
-
visit
protected java.lang.Object visit(ASTAnnotation node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTArrayAccess node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTArrayLiteral node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTAssignment node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTConstructorNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTDecrementGetNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTDoWhileStatement node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTForeachStatement node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTGetDecrementNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTGetIncrementNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTIncrementGetNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTMapLiteral node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTMethodNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTRangeNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetAddNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetAndNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetDivNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetLiteral node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetModNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetMultNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetOrNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetShiftLeftNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetShiftRightNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetShiftRightUnsignedNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetSubNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetXorNode node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTTryStatement node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visit
protected java.lang.Object visit(ASTWhileStatement node, java.lang.Object data)
- Overrides:
visitin classScriptVisitor
-
visitNode
protected java.lang.Object visitNode(JexlNode node, java.lang.Object data)
Description copied from class:ScriptVisitorVisits a node. Default implementation visits all its children.- Overrides:
visitNodein classScriptVisitor- Parameters:
node- the node to visitdata- visitor pattern argument- Returns:
- visitor pattern value
-
-