|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.jexl3.parser.ParserVisitor
org.apache.commons.jexl3.internal.Debugger
public class Debugger
Helps pinpoint the cause of problems in expressions that fail during evaluation.
It rebuilds an expression string from the tree and the start/end offsets of the cause in that string. This implies that exceptions during evaluation do always carry the node that's causing the error.
Field Summary | |
---|---|
protected StringBuilder |
builder
The builder to compose messages. |
protected JexlNode |
cause
The cause of the issue to debug. |
protected int |
end
The ending character location offset of the cause in the builder. |
protected int |
indent
Perform indentation?. |
protected int |
indentLevel
The indentation level. |
protected static Pattern |
QUOTED_IDENTIFIER
Checks identifiers that contain spaces or punctuation (but underscore, at-sign, sharp-sign and dollar). |
protected int |
start
The starting character location offset of the cause in the builder. |
Constructor Summary | |
---|---|
Debugger()
Creates a Debugger. |
Method Summary | |
---|---|
protected Object |
accept(JexlNode node,
Object data)
Checks if a child node is the cause to debug & adds its representation to the rebuilt expression. |
protected Object |
acceptStatement(JexlNode child,
Object data)
Adds a statement node to the rebuilt expression. |
protected Object |
additiveNode(JexlNode node,
String op,
Object data)
Rebuilds an additive expression. |
protected Object |
check(JexlNode node,
String image,
Object data)
Checks if a terminal node is the the cause to debug & adds its representation to the rebuilt expression. |
String |
data(JexlNode node)
Rebuilds an expression from a JEXL node. |
boolean |
debug(JexlExpression jscript)
Position the debugger on the root of an expression. |
boolean |
debug(JexlNode node)
Seeks the location of an error cause (a node) in an expression. |
boolean |
debug(JexlNode node,
boolean r)
Seeks the location of an error cause (a node) in an expression. |
boolean |
debug(JexlScript jscript)
Position the debugger on the root of a script. |
int |
end()
|
protected Object |
infixChildren(JexlNode node,
String infix,
boolean paren,
Object data)
Checks if the children of a node using infix notation is the cause to debug, adds their representation to the rebuilt expression. |
protected boolean |
needQuotes(String str)
Checks whether an identifier should be quoted or not. |
protected Object |
prefixChild(JexlNode node,
String prefix,
Object data)
Checks if the child of a node using prefix notation is the cause to debug, adds their representation to the rebuilt expression. |
void |
setIndentation(int level)
Sets the indentation level. |
int |
start()
|
String |
toString()
|
protected Object |
visit(ASTAddNode node,
Object data)
|
protected Object |
visit(ASTAndNode node,
Object data)
|
protected Object |
visit(ASTAnnotatedStatement node,
Object data)
|
protected Object |
visit(ASTAnnotation node,
Object data)
|
protected Object |
visit(ASTArguments node,
Object data)
|
protected Object |
visit(ASTArrayAccess node,
Object data)
|
protected Object |
visit(ASTArrayLiteral node,
Object data)
|
protected Object |
visit(ASTAssignment node,
Object data)
|
protected Object |
visit(ASTBitwiseAndNode node,
Object data)
|
protected Object |
visit(ASTBitwiseComplNode node,
Object data)
|
protected Object |
visit(ASTBitwiseOrNode node,
Object data)
|
protected Object |
visit(ASTBitwiseXorNode node,
Object data)
|
protected Object |
visit(ASTBlock node,
Object data)
|
protected Object |
visit(ASTBreak node,
Object data)
|
protected Object |
visit(ASTConstructorNode node,
Object data)
|
protected Object |
visit(ASTContinue node,
Object data)
|
protected Object |
visit(ASTDivNode node,
Object data)
|
protected Object |
visit(ASTEmptyFunction node,
Object data)
|
protected Object |
visit(ASTEmptyMethod node,
Object data)
|
protected Object |
visit(ASTEQNode node,
Object data)
|
protected Object |
visit(ASTERNode node,
Object data)
|
protected Object |
visit(ASTEWNode node,
Object data)
|
protected Object |
visit(ASTExtendedLiteral node,
Object data)
|
protected Object |
visit(ASTFalseNode node,
Object data)
|
protected Object |
visit(ASTForeachStatement node,
Object data)
|
protected Object |
visit(ASTFunctionNode node,
Object data)
|
protected Object |
visit(ASTGENode node,
Object data)
|
protected Object |
visit(ASTGTNode node,
Object data)
|
protected Object |
visit(ASTIdentifierAccess node,
Object data)
|
protected Object |
visit(ASTIdentifier node,
Object data)
|
protected Object |
visit(ASTIfStatement node,
Object data)
|
protected Object |
visit(ASTJexlScript node,
Object data)
|
protected Object |
visit(ASTJxltLiteral node,
Object data)
|
protected Object |
visit(ASTLENode node,
Object data)
|
protected Object |
visit(ASTLTNode node,
Object data)
|
protected Object |
visit(ASTMapEntry node,
Object data)
|
protected Object |
visit(ASTMapLiteral node,
Object data)
|
protected Object |
visit(ASTMethodNode node,
Object data)
|
protected Object |
visit(ASTModNode node,
Object data)
|
protected Object |
visit(ASTMulNode node,
Object data)
|
protected Object |
visit(ASTNENode node,
Object data)
|
protected Object |
visit(ASTNEWNode node,
Object data)
|
protected Object |
visit(ASTNotNode node,
Object data)
|
protected Object |
visit(ASTNRNode node,
Object data)
|
protected Object |
visit(ASTNSWNode node,
Object data)
|
protected Object |
visit(ASTNullLiteral node,
Object data)
|
protected Object |
visit(ASTNumberLiteral node,
Object data)
|
protected Object |
visit(ASTOrNode node,
Object data)
|
protected Object |
visit(ASTRangeNode node,
Object data)
|
protected Object |
visit(ASTReferenceExpression node,
Object data)
|
protected Object |
visit(ASTReference node,
Object data)
|
protected Object |
visit(ASTReturnStatement node,
Object data)
|
protected Object |
visit(ASTSetAddNode node,
Object data)
|
protected Object |
visit(ASTSetAndNode node,
Object data)
|
protected Object |
visit(ASTSetDivNode node,
Object data)
|
protected Object |
visit(ASTSetLiteral node,
Object data)
|
protected Object |
visit(ASTSetModNode node,
Object data)
|
protected Object |
visit(ASTSetMultNode node,
Object data)
|
protected Object |
visit(ASTSetOrNode node,
Object data)
|
protected Object |
visit(ASTSetSubNode node,
Object data)
|
protected Object |
visit(ASTSetXorNode node,
Object data)
|
protected Object |
visit(ASTSizeFunction node,
Object data)
|
protected Object |
visit(ASTSizeMethod node,
Object data)
|
protected Object |
visit(ASTStringLiteral node,
Object data)
|
protected Object |
visit(ASTSubNode node,
Object data)
|
protected Object |
visit(ASTSWNode node,
Object data)
|
protected Object |
visit(ASTTernaryNode node,
Object data)
|
protected Object |
visit(ASTTrueNode node,
Object data)
|
protected Object |
visit(ASTUnaryMinusNode node,
Object data)
|
protected Object |
visit(ASTVar node,
Object data)
|
protected Object |
visit(ASTWhileStatement node,
Object data)
|
protected String |
visitParameter(String p,
Object data)
A pseudo visitor for parameters. |
Methods inherited from class org.apache.commons.jexl3.parser.ParserVisitor |
---|
visit, visit |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected final StringBuilder builder
protected JexlNode cause
protected int start
protected int end
protected int indentLevel
protected int indent
protected static final Pattern QUOTED_IDENTIFIER
Constructor Detail |
---|
public Debugger()
Method Detail |
---|
public boolean debug(JexlExpression jscript)
jscript
- the expression
Script
instance, false otherwisepublic boolean debug(JexlScript jscript)
jscript
- the script
Script
instance, false otherwisepublic boolean debug(JexlNode node)
node
- the node to debug
public boolean debug(JexlNode node, boolean r)
node
- the node to debugr
- whether we should actively find the root node of the debugged node
public String toString()
toString
in interface JexlInfo.Detail
toString
in class Object
public String data(JexlNode node)
node
- the node to rebuilt from
public int start()
start
in interface JexlInfo.Detail
public int end()
end
in interface JexlInfo.Detail
public void setIndentation(int level)
level
- the number of spaces for indentation, none if less or equal to zeroprotected Object accept(JexlNode node, Object data)
node
- the child nodedata
- visitor pattern argument
protected Object acceptStatement(JexlNode child, Object data)
child
- the child nodedata
- visitor pattern argument
protected Object check(JexlNode node, String image, Object data)
node
- the child nodeimage
- the child node token image (may be null)data
- visitor pattern argument
protected Object infixChildren(JexlNode node, String infix, boolean paren, Object data)
node
- the child nodeinfix
- the child node tokenparen
- whether the child should be parenthesizeddata
- visitor pattern argument
protected Object prefixChild(JexlNode node, String prefix, Object data)
node
- the nodeprefix
- the node tokendata
- visitor pattern argument
protected Object visit(ASTAddNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSubNode node, Object data)
visit
in class ParserVisitor
protected Object additiveNode(JexlNode node, String op, Object data)
node
- the nodeop
- the operatordata
- visitor pattern argument
protected Object visit(ASTAndNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTArrayAccess node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTExtendedLiteral node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTArrayLiteral node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTRangeNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTAssignment node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTBitwiseAndNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTBitwiseComplNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTBitwiseOrNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTBitwiseXorNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTBlock node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTDivNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTEmptyFunction node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTEmptyMethod node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTEQNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTERNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSWNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTEWNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTNSWNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTNEWNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTFalseNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTContinue node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTBreak node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTForeachStatement node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTGENode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTGTNode node, Object data)
visit
in class ParserVisitor
protected boolean needQuotes(String str)
str
- the identifier
protected Object visit(ASTIdentifier node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTIdentifierAccess node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTIfStatement node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTNumberLiteral node, Object data)
visit
in class ParserVisitor
protected String visitParameter(String p, Object data)
p
- the parameter namedata
- the visitor argument
protected Object visit(ASTJexlScript node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTLENode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTLTNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTMapEntry node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSetLiteral node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTMapLiteral node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTConstructorNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTFunctionNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTMethodNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTArguments node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTModNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTMulNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTNENode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTNRNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTNotNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTNullLiteral node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTOrNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTReference node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTReferenceExpression node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTReturnStatement node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSizeFunction node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSizeMethod node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTStringLiteral node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTTernaryNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTTrueNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTUnaryMinusNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTVar node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTWhileStatement node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSetAddNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSetSubNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSetMultNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSetDivNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSetModNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSetAndNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSetOrNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTSetXorNode node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTJxltLiteral node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTAnnotation node, Object data)
visit
in class ParserVisitor
protected Object visit(ASTAnnotatedStatement node, Object data)
visit
in class ParserVisitor
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |