Package com.strobel.expressions
Class DebugViewWriter
- java.lang.Object
-
- com.strobel.expressions.ExpressionVisitor
-
- com.strobel.expressions.DebugViewWriter
-
final class DebugViewWriter extends ExpressionVisitor
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.strobel.expressions.ExpressionVisitor
ExpressionVisitor.ElementVisitor<T>
-
-
Field Summary
Fields Modifier and Type Field Description private int
_column
private int
_delta
private int
_flow
private java.util.Map<LabelTarget,java.lang.Integer>
_labelIds
private java.util.Map<LambdaExpression,java.lang.Integer>
_lambdaIds
private java.util.Deque<LambdaExpression>
_lambdas
private java.lang.StringBuilder
_out
private java.util.Map<ParameterExpression,java.lang.Integer>
_paramIds
private static int
FLOW_BREAK
private static int
FLOW_NEW_LINE
private static int
FLOW_NONE
private static int
FLOW_SPACE
private static int
MAX_COLUMN
private static int
TAB_SIZE
private Consumer<? extends Expression>
VISITOR_BLOCK
-
Constructor Summary
Constructors Modifier Constructor Description private
DebugViewWriter(java.lang.StringBuilder out)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.String
arrayToString(java.lang.Object value)
private int
base()
private int
checkBreak(int flow)
private static boolean
containsWhiteSpace(java.lang.String name)
private int
delta()
private int
depth()
private static java.lang.String
getConstantValueSuffix(Type<?> type)
private static java.lang.String
getDisplayName(java.lang.String name)
private int
getFlow(int flow)
private static <T> int
getId(T e, java.util.Map<T,java.lang.Integer> ids)
private int
getLabelTargetId(LabelTarget target)
private java.lang.String
getLabelTargetName(LabelTarget target)
private int
getLambdaId(LambdaExpression le)
private java.lang.String
getLambdaName(LambdaExpression lambda)
private static int
getOperatorPrecedence(Expression node)
private int
getParamId(ParameterExpression p)
private void
indent()
private static boolean
isSimpleExpression(Expression node)
private static boolean
needsParentheses(Expression parent, Expression child)
private void
newLine()
private void
out(char c)
private void
out(char c, int after)
private void
out(int before, char c, int after)
private void
out(int before, java.lang.String s)
private void
out(int before, java.lang.String s, int after)
private void
out(java.lang.String s)
private void
out(java.lang.String s, int after)
private void
outMember(Expression node, Expression instance, MemberInfo member)
private void
parenthesizedVisit(Expression parent, Expression nodeToVisit)
private static java.lang.String
quoteName(java.lang.String name)
private void
unindent()
protected Expression
visitBinary(BinaryExpression node)
protected Expression
visitBlock(BlockExpression node)
protected CatchBlock
visitCatchBlock(CatchBlock node)
protected Expression
visitConcat(ConcatExpression node)
protected Expression
visitConditional(ConditionalExpression node)
protected Expression
visitConstant(ConstantExpression node)
private void
visitDeclarations(ExpressionList<ParameterExpression> expressions)
protected Expression
visitDefaultValue(DefaultValueExpression node)
private <T extends Expression>
voidvisitExpressions(char open, char separator, ExpressionList<T> expressions)
private <T extends Expression>
voidvisitExpressions(char open, char separator, ExpressionList<T> expressions, Consumer<T> visit)
private <T extends Expression>
voidvisitExpressions(char open, ExpressionList<T> expressions)
protected Expression
visitExtension(Expression node)
protected Expression
visitFor(ForExpression node)
protected Expression
visitForEach(ForEachExpression node)
protected Expression
visitGoto(GotoExpression node)
protected Expression
visitInvocation(InvocationExpression node)
protected Expression
visitLabel(LabelExpression node)
protected LabelTarget
visitLabelTarget(LabelTarget node)
protected <T> LambdaExpression<T>
visitLambda(LambdaExpression<T> node)
protected Expression
visitLoop(LoopExpression node)
protected Expression
visitMember(MemberExpression node)
protected Expression
visitMethodCall(MethodCallExpression node)
protected Expression
visitNew(NewExpression node)
protected Expression
visitNewArray(NewArrayExpression node)
private <T extends Expression>
Consumer<T>visitorBlock()
protected Expression
visitParameter(ParameterExpression node)
protected Expression
visitRuntimeVariables(RuntimeVariablesExpression node)
protected Expression
visitSwitch(SwitchExpression node)
protected SwitchCase
visitSwitchCase(SwitchCase node)
protected Expression
visitTry(TryExpression node)
protected Expression
visitTypeBinary(TypeBinaryExpression node)
protected Expression
visitUnary(UnaryExpression node)
private void
write(char c)
private void
write(java.lang.String s)
private void
writeLabel(LabelTarget target)
private void
writeLambda(LambdaExpression lambda)
private void
writeLine()
private void
writeTo(Expression node)
(package private) static void
writeTo(Expression node, java.lang.StringBuilder writer)
-
Methods inherited from class com.strobel.expressions.ExpressionVisitor
visit, visit, visit, visitAndConvert, visitAndConvertList, visitAndConvertList, visitArguments
-
-
-
-
Field Detail
-
FLOW_NONE
private static final int FLOW_NONE
- See Also:
- Constant Field Values
-
FLOW_SPACE
private static final int FLOW_SPACE
- See Also:
- Constant Field Values
-
FLOW_NEW_LINE
private static final int FLOW_NEW_LINE
- See Also:
- Constant Field Values
-
FLOW_BREAK
private static final int FLOW_BREAK
- See Also:
- Constant Field Values
-
TAB_SIZE
private static final int TAB_SIZE
- See Also:
- Constant Field Values
-
MAX_COLUMN
private static final int MAX_COLUMN
- See Also:
- Constant Field Values
-
_out
private final java.lang.StringBuilder _out
-
_column
private int _column
-
_delta
private int _delta
-
_flow
private int _flow
-
_lambdas
private final java.util.Deque<LambdaExpression> _lambdas
-
_lambdaIds
private final java.util.Map<LambdaExpression,java.lang.Integer> _lambdaIds
-
_paramIds
private final java.util.Map<ParameterExpression,java.lang.Integer> _paramIds
-
_labelIds
private final java.util.Map<LabelTarget,java.lang.Integer> _labelIds
-
VISITOR_BLOCK
private final Consumer<? extends Expression> VISITOR_BLOCK
-
-
Method Detail
-
visitorBlock
private <T extends Expression> Consumer<T> visitorBlock()
-
base
private int base()
-
delta
private int delta()
-
depth
private int depth()
-
indent
private void indent()
-
unindent
private void unindent()
-
newLine
private void newLine()
-
getId
private static <T> int getId(T e, java.util.Map<T,java.lang.Integer> ids)
-
getLambdaId
private int getLambdaId(LambdaExpression le)
-
getParamId
private int getParamId(ParameterExpression p)
-
getLabelTargetId
private int getLabelTargetId(LabelTarget target)
-
out
private void out(char c)
-
out
private void out(char c, int after)
-
out
private void out(int before, char c, int after)
-
out
private void out(java.lang.String s)
-
out
private void out(int before, java.lang.String s)
-
out
private void out(java.lang.String s, int after)
-
out
private void out(int before, java.lang.String s, int after)
-
outMember
private void outMember(Expression node, Expression instance, MemberInfo member)
-
writeLine
private void writeLine()
-
write
private void write(java.lang.String s)
-
write
private void write(char c)
-
getFlow
private int getFlow(int flow)
-
checkBreak
private int checkBreak(int flow)
-
writeTo
static void writeTo(Expression node, java.lang.StringBuilder writer)
-
writeTo
private void writeTo(Expression node)
-
writeLambda
private void writeLambda(LambdaExpression lambda)
-
visitExpressions
private <T extends Expression> void visitExpressions(char open, ExpressionList<T> expressions)
-
visitExpressions
private <T extends Expression> void visitExpressions(char open, char separator, ExpressionList<T> expressions)
-
visitDeclarations
private void visitDeclarations(ExpressionList<ParameterExpression> expressions)
-
visitExpressions
private <T extends Expression> void visitExpressions(char open, char separator, ExpressionList<T> expressions, Consumer<T> visit)
-
writeLabel
private void writeLabel(LabelTarget target)
-
isSimpleExpression
private static boolean isSimpleExpression(Expression node)
-
getConstantValueSuffix
private static java.lang.String getConstantValueSuffix(Type<?> type)
-
containsWhiteSpace
private static boolean containsWhiteSpace(java.lang.String name)
-
quoteName
private static java.lang.String quoteName(java.lang.String name)
-
getDisplayName
private static java.lang.String getDisplayName(java.lang.String name)
-
getLambdaName
private java.lang.String getLambdaName(LambdaExpression lambda)
-
getLabelTargetName
private java.lang.String getLabelTargetName(LabelTarget target)
-
arrayToString
private java.lang.String arrayToString(java.lang.Object value)
-
parenthesizedVisit
private void parenthesizedVisit(Expression parent, Expression nodeToVisit)
-
needsParentheses
private static boolean needsParentheses(Expression parent, Expression child)
-
getOperatorPrecedence
private static int getOperatorPrecedence(Expression node)
-
visitBinary
protected Expression visitBinary(BinaryExpression node)
- Overrides:
visitBinary
in classExpressionVisitor
-
visitParameter
protected Expression visitParameter(ParameterExpression node)
- Overrides:
visitParameter
in classExpressionVisitor
-
visitLambda
protected <T> LambdaExpression<T> visitLambda(LambdaExpression<T> node)
- Overrides:
visitLambda
in classExpressionVisitor
-
visitConditional
protected Expression visitConditional(ConditionalExpression node)
- Overrides:
visitConditional
in classExpressionVisitor
-
visitConstant
protected Expression visitConstant(ConstantExpression node)
- Overrides:
visitConstant
in classExpressionVisitor
-
visitRuntimeVariables
protected Expression visitRuntimeVariables(RuntimeVariablesExpression node)
- Overrides:
visitRuntimeVariables
in classExpressionVisitor
-
visitMember
protected Expression visitMember(MemberExpression node)
- Overrides:
visitMember
in classExpressionVisitor
-
visitInvocation
protected Expression visitInvocation(InvocationExpression node)
- Overrides:
visitInvocation
in classExpressionVisitor
-
visitMethodCall
protected Expression visitMethodCall(MethodCallExpression node)
- Overrides:
visitMethodCall
in classExpressionVisitor
-
visitNewArray
protected Expression visitNewArray(NewArrayExpression node)
- Overrides:
visitNewArray
in classExpressionVisitor
-
visitNew
protected Expression visitNew(NewExpression node)
- Overrides:
visitNew
in classExpressionVisitor
-
visitDefaultValue
protected Expression visitDefaultValue(DefaultValueExpression node)
- Overrides:
visitDefaultValue
in classExpressionVisitor
-
visitExtension
protected Expression visitExtension(Expression node)
- Overrides:
visitExtension
in classExpressionVisitor
-
visitLabel
protected Expression visitLabel(LabelExpression node)
- Overrides:
visitLabel
in classExpressionVisitor
-
visitLabelTarget
protected LabelTarget visitLabelTarget(LabelTarget node)
- Overrides:
visitLabelTarget
in classExpressionVisitor
-
visitGoto
protected Expression visitGoto(GotoExpression node)
- Overrides:
visitGoto
in classExpressionVisitor
-
visitLoop
protected Expression visitLoop(LoopExpression node)
- Overrides:
visitLoop
in classExpressionVisitor
-
visitForEach
protected Expression visitForEach(ForEachExpression node)
- Overrides:
visitForEach
in classExpressionVisitor
-
visitFor
protected Expression visitFor(ForExpression node)
- Overrides:
visitFor
in classExpressionVisitor
-
visitUnary
protected Expression visitUnary(UnaryExpression node)
- Overrides:
visitUnary
in classExpressionVisitor
-
visitTypeBinary
protected Expression visitTypeBinary(TypeBinaryExpression node)
- Overrides:
visitTypeBinary
in classExpressionVisitor
-
visitBlock
protected Expression visitBlock(BlockExpression node)
- Overrides:
visitBlock
in classExpressionVisitor
-
visitTry
protected Expression visitTry(TryExpression node)
- Overrides:
visitTry
in classExpressionVisitor
-
visitCatchBlock
protected CatchBlock visitCatchBlock(CatchBlock node)
- Overrides:
visitCatchBlock
in classExpressionVisitor
-
visitSwitchCase
protected SwitchCase visitSwitchCase(SwitchCase node)
- Overrides:
visitSwitchCase
in classExpressionVisitor
-
visitSwitch
protected Expression visitSwitch(SwitchExpression node)
- Overrides:
visitSwitch
in classExpressionVisitor
-
visitConcat
protected Expression visitConcat(ConcatExpression node)
- Overrides:
visitConcat
in classExpressionVisitor
-
-