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_columnprivate int_deltaprivate int_flowprivate java.util.Map<LabelTarget,java.lang.Integer>_labelIdsprivate java.util.Map<LambdaExpression,java.lang.Integer>_lambdaIdsprivate java.util.Deque<LambdaExpression>_lambdasprivate java.lang.StringBuilder_outprivate java.util.Map<ParameterExpression,java.lang.Integer>_paramIdsprivate static intFLOW_BREAKprivate static intFLOW_NEW_LINEprivate static intFLOW_NONEprivate static intFLOW_SPACEprivate static intMAX_COLUMNprivate static intTAB_SIZEprivate Consumer<? extends Expression>VISITOR_BLOCK
-
Constructor Summary
Constructors Modifier Constructor Description privateDebugViewWriter(java.lang.StringBuilder out)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.StringarrayToString(java.lang.Object value)private intbase()private intcheckBreak(int flow)private static booleancontainsWhiteSpace(java.lang.String name)private intdelta()private intdepth()private static java.lang.StringgetConstantValueSuffix(Type<?> type)private static java.lang.StringgetDisplayName(java.lang.String name)private intgetFlow(int flow)private static <T> intgetId(T e, java.util.Map<T,java.lang.Integer> ids)private intgetLabelTargetId(LabelTarget target)private java.lang.StringgetLabelTargetName(LabelTarget target)private intgetLambdaId(LambdaExpression le)private java.lang.StringgetLambdaName(LambdaExpression lambda)private static intgetOperatorPrecedence(Expression node)private intgetParamId(ParameterExpression p)private voidindent()private static booleanisSimpleExpression(Expression node)private static booleanneedsParentheses(Expression parent, Expression child)private voidnewLine()private voidout(char c)private voidout(char c, int after)private voidout(int before, char c, int after)private voidout(int before, java.lang.String s)private voidout(int before, java.lang.String s, int after)private voidout(java.lang.String s)private voidout(java.lang.String s, int after)private voidoutMember(Expression node, Expression instance, MemberInfo member)private voidparenthesizedVisit(Expression parent, Expression nodeToVisit)private static java.lang.StringquoteName(java.lang.String name)private voidunindent()protected ExpressionvisitBinary(BinaryExpression node)protected ExpressionvisitBlock(BlockExpression node)protected CatchBlockvisitCatchBlock(CatchBlock node)protected ExpressionvisitConcat(ConcatExpression node)protected ExpressionvisitConditional(ConditionalExpression node)protected ExpressionvisitConstant(ConstantExpression node)private voidvisitDeclarations(ExpressionList<ParameterExpression> expressions)protected ExpressionvisitDefaultValue(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 ExpressionvisitExtension(Expression node)protected ExpressionvisitFor(ForExpression node)protected ExpressionvisitForEach(ForEachExpression node)protected ExpressionvisitGoto(GotoExpression node)protected ExpressionvisitInvocation(InvocationExpression node)protected ExpressionvisitLabel(LabelExpression node)protected LabelTargetvisitLabelTarget(LabelTarget node)protected <T> LambdaExpression<T>visitLambda(LambdaExpression<T> node)protected ExpressionvisitLoop(LoopExpression node)protected ExpressionvisitMember(MemberExpression node)protected ExpressionvisitMethodCall(MethodCallExpression node)protected ExpressionvisitNew(NewExpression node)protected ExpressionvisitNewArray(NewArrayExpression node)private <T extends Expression>
Consumer<T>visitorBlock()protected ExpressionvisitParameter(ParameterExpression node)protected ExpressionvisitRuntimeVariables(RuntimeVariablesExpression node)protected ExpressionvisitSwitch(SwitchExpression node)protected SwitchCasevisitSwitchCase(SwitchCase node)protected ExpressionvisitTry(TryExpression node)protected ExpressionvisitTypeBinary(TypeBinaryExpression node)protected ExpressionvisitUnary(UnaryExpression node)private voidwrite(char c)private voidwrite(java.lang.String s)private voidwriteLabel(LabelTarget target)private voidwriteLambda(LambdaExpression lambda)private voidwriteLine()private voidwriteTo(Expression node)(package private) static voidwriteTo(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:
visitBinaryin classExpressionVisitor
-
visitParameter
protected Expression visitParameter(ParameterExpression node)
- Overrides:
visitParameterin classExpressionVisitor
-
visitLambda
protected <T> LambdaExpression<T> visitLambda(LambdaExpression<T> node)
- Overrides:
visitLambdain classExpressionVisitor
-
visitConditional
protected Expression visitConditional(ConditionalExpression node)
- Overrides:
visitConditionalin classExpressionVisitor
-
visitConstant
protected Expression visitConstant(ConstantExpression node)
- Overrides:
visitConstantin classExpressionVisitor
-
visitRuntimeVariables
protected Expression visitRuntimeVariables(RuntimeVariablesExpression node)
- Overrides:
visitRuntimeVariablesin classExpressionVisitor
-
visitMember
protected Expression visitMember(MemberExpression node)
- Overrides:
visitMemberin classExpressionVisitor
-
visitInvocation
protected Expression visitInvocation(InvocationExpression node)
- Overrides:
visitInvocationin classExpressionVisitor
-
visitMethodCall
protected Expression visitMethodCall(MethodCallExpression node)
- Overrides:
visitMethodCallin classExpressionVisitor
-
visitNewArray
protected Expression visitNewArray(NewArrayExpression node)
- Overrides:
visitNewArrayin classExpressionVisitor
-
visitNew
protected Expression visitNew(NewExpression node)
- Overrides:
visitNewin classExpressionVisitor
-
visitDefaultValue
protected Expression visitDefaultValue(DefaultValueExpression node)
- Overrides:
visitDefaultValuein classExpressionVisitor
-
visitExtension
protected Expression visitExtension(Expression node)
- Overrides:
visitExtensionin classExpressionVisitor
-
visitLabel
protected Expression visitLabel(LabelExpression node)
- Overrides:
visitLabelin classExpressionVisitor
-
visitLabelTarget
protected LabelTarget visitLabelTarget(LabelTarget node)
- Overrides:
visitLabelTargetin classExpressionVisitor
-
visitGoto
protected Expression visitGoto(GotoExpression node)
- Overrides:
visitGotoin classExpressionVisitor
-
visitLoop
protected Expression visitLoop(LoopExpression node)
- Overrides:
visitLoopin classExpressionVisitor
-
visitForEach
protected Expression visitForEach(ForEachExpression node)
- Overrides:
visitForEachin classExpressionVisitor
-
visitFor
protected Expression visitFor(ForExpression node)
- Overrides:
visitForin classExpressionVisitor
-
visitUnary
protected Expression visitUnary(UnaryExpression node)
- Overrides:
visitUnaryin classExpressionVisitor
-
visitTypeBinary
protected Expression visitTypeBinary(TypeBinaryExpression node)
- Overrides:
visitTypeBinaryin classExpressionVisitor
-
visitBlock
protected Expression visitBlock(BlockExpression node)
- Overrides:
visitBlockin classExpressionVisitor
-
visitTry
protected Expression visitTry(TryExpression node)
- Overrides:
visitTryin classExpressionVisitor
-
visitCatchBlock
protected CatchBlock visitCatchBlock(CatchBlock node)
- Overrides:
visitCatchBlockin classExpressionVisitor
-
visitSwitchCase
protected SwitchCase visitSwitchCase(SwitchCase node)
- Overrides:
visitSwitchCasein classExpressionVisitor
-
visitSwitch
protected Expression visitSwitch(SwitchExpression node)
- Overrides:
visitSwitchin classExpressionVisitor
-
visitConcat
protected Expression visitConcat(ConcatExpression node)
- Overrides:
visitConcatin classExpressionVisitor
-
-