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 JexlFeatures
features
The 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 void
controlNode(JexlNode node)
Perform the control on a node.private java.lang.Object
controlSideEffect(JexlNode node, java.lang.Object data)
JexlFeatures
getFeatures()
private boolean
isArrayReferenceLiteral(JexlNode child)
Checks whether a node is a string or an integer.void
setFeatures(JexlFeatures fdesc)
Sets the features to controlNode.void
throwFeatureException(int feature, JexlNode node)
Throws a feature exception.protected java.lang.Object
visit(ASTAnnotation node, java.lang.Object data)
protected java.lang.Object
visit(ASTArrayAccess node, java.lang.Object data)
protected java.lang.Object
visit(ASTArrayLiteral node, java.lang.Object data)
protected java.lang.Object
visit(ASTAssignment node, java.lang.Object data)
protected java.lang.Object
visit(ASTConstructorNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTDecrementGetNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTDoWhileStatement node, java.lang.Object data)
protected java.lang.Object
visit(ASTForeachStatement node, java.lang.Object data)
protected java.lang.Object
visit(ASTGetDecrementNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTGetIncrementNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTIncrementGetNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTMapLiteral node, java.lang.Object data)
protected java.lang.Object
visit(ASTMethodNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTRangeNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTSetAddNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTSetAndNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTSetDivNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTSetLiteral node, java.lang.Object data)
protected java.lang.Object
visit(ASTSetModNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTSetMultNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTSetOrNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTSetShiftLeftNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTSetShiftRightNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTSetShiftRightUnsignedNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTSetSubNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTSetXorNode node, java.lang.Object data)
protected java.lang.Object
visit(ASTTryStatement node, java.lang.Object data)
protected java.lang.Object
visit(ASTWhileStatement node, java.lang.Object data)
protected java.lang.Object
visitNode(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, 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:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTArrayAccess node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTArrayLiteral node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTAssignment node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTConstructorNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTDecrementGetNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTDoWhileStatement node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTForeachStatement node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTGetDecrementNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTGetIncrementNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTIncrementGetNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTMapLiteral node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTMethodNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTRangeNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetAddNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetAndNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetDivNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetLiteral node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetModNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetMultNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetOrNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetShiftLeftNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetShiftRightNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetShiftRightUnsignedNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetSubNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTSetXorNode node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTTryStatement node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visit
protected java.lang.Object visit(ASTWhileStatement node, java.lang.Object data)
- Overrides:
visit
in classScriptVisitor
-
visitNode
protected java.lang.Object visitNode(JexlNode node, java.lang.Object data)
Description copied from class:ScriptVisitor
Visits a node. Default implementation visits all its children.- Overrides:
visitNode
in classScriptVisitor
- Parameters:
node
- the node to visitdata
- visitor pattern argument- Returns:
- visitor pattern value
-
-