public class Debugger extends ParserVisitor implements JexlInfo.Detail
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.
| Modifier and Type | Field and Description |
|---|---|
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 space, quote, double-quotes or backspace.
|
protected int |
start
The starting character location offset of the cause in the builder.
|
| Constructor and Description |
|---|
Debugger()
Creates a Debugger.
|
| Modifier and Type | Method and Description |
|---|---|
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 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.
|
visit, visitprotected final StringBuilder builder
protected JexlNode cause
protected int start
protected int end
protected int indentLevel
protected int indent
protected static final Pattern QUOTED_IDENTIFIER
public boolean debug(JexlExpression jscript)
jscript - the expressionScript instance, false otherwisepublic boolean debug(JexlScript jscript)
jscript - the scriptScript instance, false otherwisepublic boolean debug(JexlNode node)
node - the node to debugpublic boolean debug(JexlNode node, boolean r)
node - the node to debugr - whether we should actively find the root node of the debugged nodepublic String toString()
toString in interface JexlInfo.DetailtoString in class Objectpublic String data(JexlNode node)
node - the node to rebuilt frompublic int start()
start in interface JexlInfo.Detailpublic int end()
end in interface JexlInfo.Detailpublic 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 argumentprotected Object acceptStatement(JexlNode child, Object data)
child - the child nodedata - visitor pattern argumentprotected Object check(JexlNode node, String image, Object data)
node - the child nodeimage - the child node token image (may be null)data - visitor pattern argumentprotected 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 argumentprotected Object prefixChild(JexlNode node, String prefix, Object data)
node - the nodeprefix - the node tokendata - visitor pattern argumentprotected Object visit(ASTAddNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSubNode node, Object data)
visit in class ParserVisitorprotected Object additiveNode(JexlNode node, String op, Object data)
node - the nodeop - the operatordata - visitor pattern argumentprotected Object visit(ASTAndNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTArrayAccess node, Object data)
visit in class ParserVisitorprotected Object visit(ASTExtendedLiteral node, Object data)
visit in class ParserVisitorprotected Object visit(ASTArrayLiteral node, Object data)
visit in class ParserVisitorprotected Object visit(ASTRangeNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTAssignment node, Object data)
visit in class ParserVisitorprotected Object visit(ASTBitwiseAndNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTBitwiseComplNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTBitwiseOrNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTBitwiseXorNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTBlock node, Object data)
visit in class ParserVisitorprotected Object visit(ASTDivNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTEmptyFunction node, Object data)
visit in class ParserVisitorprotected Object visit(ASTEmptyMethod node, Object data)
visit in class ParserVisitorprotected Object visit(ASTEQNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTERNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSWNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTEWNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTNSWNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTNEWNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTFalseNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTContinue node, Object data)
visit in class ParserVisitorprotected Object visit(ASTBreak node, Object data)
visit in class ParserVisitorprotected Object visit(ASTForeachStatement node, Object data)
visit in class ParserVisitorprotected Object visit(ASTGENode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTGTNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTIdentifier node, Object data)
visit in class ParserVisitorprotected Object visit(ASTIdentifierAccess node, Object data)
visit in class ParserVisitorprotected Object visit(ASTIfStatement node, Object data)
visit in class ParserVisitorprotected Object visit(ASTNumberLiteral node, Object data)
visit in class ParserVisitorprotected String visitParameter(String p, Object data)
p - the parameter namedata - the visitor argumentprotected Object visit(ASTJexlScript node, Object data)
visit in class ParserVisitorprotected Object visit(ASTLENode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTLTNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTMapEntry node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSetLiteral node, Object data)
visit in class ParserVisitorprotected Object visit(ASTMapLiteral node, Object data)
visit in class ParserVisitorprotected Object visit(ASTConstructorNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTFunctionNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTMethodNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTArguments node, Object data)
visit in class ParserVisitorprotected Object visit(ASTModNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTMulNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTNENode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTNRNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTNotNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTNullLiteral node, Object data)
visit in class ParserVisitorprotected Object visit(ASTOrNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTReference node, Object data)
visit in class ParserVisitorprotected Object visit(ASTReferenceExpression node, Object data)
visit in class ParserVisitorprotected Object visit(ASTReturnStatement node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSizeFunction node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSizeMethod node, Object data)
visit in class ParserVisitorprotected Object visit(ASTStringLiteral node, Object data)
visit in class ParserVisitorprotected Object visit(ASTTernaryNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTTrueNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTUnaryMinusNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTVar node, Object data)
visit in class ParserVisitorprotected Object visit(ASTWhileStatement node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSetAddNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSetSubNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSetMultNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSetDivNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSetModNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSetAndNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSetOrNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTSetXorNode node, Object data)
visit in class ParserVisitorprotected Object visit(ASTJxltLiteral node, Object data)
visit in class ParserVisitorprotected Object visit(ASTAnnotation node, Object data)
visit in class ParserVisitorprotected Object visit(ASTAnnotatedStatement node, Object data)
visit in class ParserVisitorCopyright © 2001–2016 The Apache Software Foundation. All rights reserved.