Class JavaOutputVisitor
java.lang.Object
com.strobel.decompiler.languages.java.JavaOutputVisitor
- All Implemented Interfaces:
IAstVisitor<Void,
Void>
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate TypeDefinition
(package private) final TextOutputFormatter
private static final String[]
private JavaOutputVisitor.LastWritten
private static final int
(package private) final ITextOutput
(package private) final JavaFormattingOptions
(package private) final DecompilerSettings
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
(package private) void
closeBrace
(BraceStyle style) (package private) void
(package private) void
static String
convertCharacter
(char ch) private static int
countLines
(String s, int stopAfter) private static int
countLines
(String s, int from, int end, int stopAfter) private CompilerTarget
(package private) void
static String
private boolean
isBitwiseContext
(AstNode parent, AstNode node) static boolean
static boolean
private static boolean
(package private) void
(package private) void
newLine()
(package private) void
openBrace
(BraceStyle style) (package private) void
private void
(package private) void
(package private) void
(package private) void
space()
(package private) void
space
(boolean addSpace) (package private) void
visitAnnotation
(Annotation node, Void ignored) private void
visitAnyNode
(AnyNode anyNode) visitArrayCreationExpression
(ArrayCreationExpression node, Void ignored) visitArrayInitializerExpression
(ArrayInitializerExpression node, Void ignored) visitArraySpecifier
(ArraySpecifier node, Void ignored) visitAssertStatement
(AssertStatement node, Void ignored) visitAssignmentExpression
(AssignmentExpression node, Void ignored) private void
visitAstTypeMatch
(AstTypeMatch repeat) private void
visitBackReference
(BackReference backReference) visitBinaryOperatorExpression
(BinaryOperatorExpression node, Void ignored) visitBlockStatement
(BlockStatement node, Void ignored) visitBreakStatement
(BreakStatement node, Void ignored) visitBytecodeConstant
(BytecodeConstant node, Void data) visitCaseLabel
(CaseLabel node, Void ignored) visitCastExpression
(CastExpression node, Void ignored) visitCatchClause
(CatchClause node, Void ignored) private void
visitChoice
(Choice choice) visitClassOfExpression
(ClassOfExpression node, Void ignored) visitComment
(Comment comment, Void ignored) visitCompilationUnit
(CompilationUnit node, Void ignored) visitComposedType
(ComposedType node, Void ignored) visitConditionalExpression
(ConditionalExpression node, Void ignored) visitConstructorDeclaration
(ConstructorDeclaration node, Void ignored) visitContinueStatement
(ContinueStatement node, Void ignored) visitDoWhileStatement
(DoWhileStatement node, Void ignored) visitEmptyStatement
(EmptyStatement node, Void ignored) visitEnumValueDeclaration
(EnumValueDeclaration node, Void ignored) visitExpressionStatement
(ExpressionStatement node, Void ignored) visitFieldDeclaration
(FieldDeclaration node, Void ignored) visitForEachStatement
(ForEachStatement node, Void ignored) visitForStatement
(ForStatement node, Void ignored) visitGotoStatement
(GotoStatement node, Void ignored) visitIdentifier
(Identifier node, Void ignored) visitIdentifierExpression
(IdentifierExpression node, Void ignored) private void
visitIfElseStatement
(IfElseStatement node, Void ignored) visitImportDeclaration
(ImportDeclaration node, Void ignored) visitIndexerExpression
(IndexerExpression node, Void ignored) visitInitializerBlock
(InstanceInitializer node, Void ignored) visitInlinedBytecode
(InlinedBytecodeExpression node, Void data) visitInstanceOfExpression
(InstanceOfExpression node, Void ignored) visitIntersectionType
(IntersectionType node, Void data) visitInvocationExpression
(InvocationExpression node, Void ignored) visitJavaTokenNode
(JavaTokenNode node, Void ignored) visitLabeledStatement
(LabeledStatement node, Void ignored) visitLabelStatement
(LabelStatement node, Void ignored) visitLambdaExpression
(LambdaExpression node, Void ignored) visitMemberReferenceExpression
(MemberReferenceExpression node, Void ignored) private void
visitMethodDeclaration
(MethodDeclaration node, Void ignored) visitMethodGroupExpression
(MethodGroupExpression node, Void ignored) visitModuleDeclaration
(ModuleDeclaration node, Void ignored) private void
visitNamedNode
(NamedNode namedNode) visitNewLine
(NewLineNode node, Void ignored) (package private) void
visitNodeInPattern
(INode childNode) visitNullReferenceExpression
(NullReferenceExpression node, Void ignored) visitObjectCreationExpression
(ObjectCreationExpression node, Void ignored) private void
visitOptionalNode
(OptionalNode optionalNode) visitPackageDeclaration
(PackageDeclaration node, Void ignored) visitParameterDeclaration
(ParameterDeclaration node, Void ignored) private void
visitParenthesizedExpression
(ParenthesizedExpression node, Void ignored) visitPatternPlaceholder
(AstNode node, Pattern pattern, Void ignored) visitPrimitiveExpression
(PrimitiveExpression node, Void ignored) private void
visitRepeat
(Repeat repeat) visitReturnStatement
(ReturnStatement node, Void ignored) visitSimpleType
(SimpleType node, Void ignored) visitSuperReferenceExpression
(SuperReferenceExpression node, Void ignored) visitSwitchExpression
(SwitchExpression node, Void ignored) visitSwitchExpressionArm
(SwitchExpressionArm node, Void ignored) visitSwitchSection
(SwitchSection node, Void ignored) visitSwitchStatement
(SwitchStatement node, Void ignored) visitSynchronizedStatement
(SynchronizedStatement node, Void ignored) visitThisReferenceExpression
(ThisReferenceExpression node, Void ignored) visitThrowStatement
(ThrowStatement node, Void ignored) visitTryCatchStatement
(TryCatchStatement node, Void ignored) visitTypeDeclaration
(TypeDeclaration node, Void ignored) private void
visitTypedNode
(TypedNode node) visitTypeParameterDeclaration
(TypeParameterDeclaration node, Void ignored) visitTypeReference
(TypeReferenceExpression node, Void ignored) visitUnaryOperatorExpression
(UnaryOperatorExpression node, Void ignored) visitUnionType
(UnionType node, Void data) visitVariableDeclaration
(VariableDeclarationStatement node, Void ignored) visitVariableInitializer
(VariableInitializer node, Void ignored) visitWhileStatement
(WhileStatement node, Void ignored) visitWildcardType
(WildcardType node, Void ignored) (package private) void
writeAnnotations
(Iterable<Annotation> annotations, boolean newLineAfter) private void
writeCommaSeparatedList
(Iterable<? extends AstNode> list) private void
writeCommaSeparatedListInParenthesis
(Iterable<? extends AstNode> list, boolean spaceWithin) (package private) void
writeEmbeddedStatement
(Statement embeddedStatement) (package private) void
writeIdentifier
(Identifier identifier, String text) (package private) boolean
writeIdentifier
(String identifier) (package private) boolean
writeIdentifier
(String identifier, Role<Identifier> identifierRole) private void
writeInitializerElements
(AstNodeCollection<Expression> elements) (package private) void
writeKeyword
(TokenRole tokenRole) (package private) void
writeKeyword
(String token) (package private) void
writeKeyword
(String token, Role<?> tokenRole) private void
writeMembers
(AstNodeCollection<EntityDeclaration> members) (package private) void
writeMethodBody
(AstNodeCollection<TypeDeclaration> declaredTypes, BlockStatement body) private void
writeModifiers
(Iterable<JavaModifierToken> modifierTokens) private void
writePipeSeparatedList
(Iterable<? extends AstNode> list) (package private) void
(package private) void
writePrivateImplementationType
(AstType privateImplementationType) private void
writeQualifiedIdentifier
(Iterable<Identifier> identifiers) private void
writeSpecials
(AstNode start, AstNode end) private void
writeSpecialsUpToNode
(AstNode node) private void
writeSpecialsUpToRole
(Role<?> role) private void
writeSpecialsUpToRole
(Role<?> role, AstNode nextNode) private void
writeSwitchSectionStatements
(AstNodeCollection<Statement> statements, boolean forceBraces) (package private) void
writeToken
(TokenRole tokenRole) (package private) void
writeToken
(String token, Role<?> role) private void
writeTypeArguments
(Iterable<AstType> typeArguments) void
writeTypeParameters
(Iterable<TypeParameterDeclaration> typeParameters) private Void
writeVariableDeclaration
(VariableDeclarationStatement node, boolean semicolon)
-
Field Details
-
MAX_SWITCH_EXPRESSION_ARM_VALUES_LENGTH
private static final int MAX_SWITCH_EXPRESSION_ARM_VALUES_LENGTH- See Also:
-
formatter
-
settings
-
policy
-
containerStack
-
positionStack
-
output
-
currentType
-
lastWritten
-
KEYWORDS
-
-
Constructor Details
-
JavaOutputVisitor
-
-
Method Details
-
getLineNumberPositions
-
startNode
-
endNode
-
writeSpecials
-
writeSpecialsUpToRole
-
writeSpecialsUpToRole
-
writeSpecialsUpToNode
-
leftParenthesis
void leftParenthesis() -
rightParenthesis
void rightParenthesis() -
space
void space() -
space
void space(boolean addSpace) -
newLine
void newLine() -
openBrace
-
closeBrace
-
writeIdentifier
-
writeIdentifier
-
writeIdentifier
-
writeToken
-
writeToken
-
comma
-
comma
-
optionalComma
void optionalComma() -
semicolon
void semicolon() -
optionalSemicolon
private void optionalSemicolon() -
writeCommaSeparatedList
-
writePipeSeparatedList
-
writeCommaSeparatedListInParenthesis
-
writeTypeArguments
-
writeTypeParameters
-
writeModifiers
-
writeQualifiedIdentifier
-
writeEmbeddedStatement
-
writeMethodBody
-
writeAnnotations
-
writePrivateImplementationType
-
writeKeyword
-
writeKeyword
-
writeKeyword
-
visitNodeInPattern
-
visitTypedNode
-
visitParameterReferenceNode
-
visitIdentifierExpressionBackReference
-
visitChoice
-
visitMemberReferenceTypeNode
-
visitAnyNode
-
visitBackReference
-
visitNamedNode
-
visitOptionalNode
-
visitRepeat
-
visitAstTypeMatch
-
visitComment
- Specified by:
visitComment
in interfaceIAstVisitor<Void,
Void>
-
visitPatternPlaceholder
- Specified by:
visitPatternPlaceholder
in interfaceIAstVisitor<Void,
Void>
-
visitInvocationExpression
- Specified by:
visitInvocationExpression
in interfaceIAstVisitor<Void,
Void>
-
visitTypeReference
- Specified by:
visitTypeReference
in interfaceIAstVisitor<Void,
Void>
-
visitJavaTokenNode
- Specified by:
visitJavaTokenNode
in interfaceIAstVisitor<Void,
Void>
-
visitMemberReferenceExpression
- Specified by:
visitMemberReferenceExpression
in interfaceIAstVisitor<Void,
Void>
-
visitIdentifier
- Specified by:
visitIdentifier
in interfaceIAstVisitor<Void,
Void>
-
visitNullReferenceExpression
- Specified by:
visitNullReferenceExpression
in interfaceIAstVisitor<Void,
Void>
-
visitThisReferenceExpression
- Specified by:
visitThisReferenceExpression
in interfaceIAstVisitor<Void,
Void>
-
visitSuperReferenceExpression
- Specified by:
visitSuperReferenceExpression
in interfaceIAstVisitor<Void,
Void>
-
visitClassOfExpression
- Specified by:
visitClassOfExpression
in interfaceIAstVisitor<Void,
Void>
-
visitBlockStatement
- Specified by:
visitBlockStatement
in interfaceIAstVisitor<Void,
Void>
-
visitExpressionStatement
- Specified by:
visitExpressionStatement
in interfaceIAstVisitor<Void,
Void>
-
visitBreakStatement
- Specified by:
visitBreakStatement
in interfaceIAstVisitor<Void,
Void>
-
visitContinueStatement
- Specified by:
visitContinueStatement
in interfaceIAstVisitor<Void,
Void>
-
visitDoWhileStatement
- Specified by:
visitDoWhileStatement
in interfaceIAstVisitor<Void,
Void>
-
visitEmptyStatement
- Specified by:
visitEmptyStatement
in interfaceIAstVisitor<Void,
Void>
-
visitIfElseStatement
- Specified by:
visitIfElseStatement
in interfaceIAstVisitor<Void,
Void>
-
visitLabelStatement
- Specified by:
visitLabelStatement
in interfaceIAstVisitor<Void,
Void>
-
visitLabeledStatement
- Specified by:
visitLabeledStatement
in interfaceIAstVisitor<Void,
Void>
-
visitReturnStatement
- Specified by:
visitReturnStatement
in interfaceIAstVisitor<Void,
Void>
-
visitSwitchStatement
- Specified by:
visitSwitchStatement
in interfaceIAstVisitor<Void,
Void>
-
visitSwitchSection
- Specified by:
visitSwitchSection
in interfaceIAstVisitor<Void,
Void>
-
visitSwitchExpression
- Specified by:
visitSwitchExpression
in interfaceIAstVisitor<Void,
Void>
-
visitSwitchExpressionArm
- Specified by:
visitSwitchExpressionArm
in interfaceIAstVisitor<Void,
Void>
-
writeSwitchSectionStatements
private void writeSwitchSectionStatements(AstNodeCollection<Statement> statements, boolean forceBraces) -
visitCaseLabel
- Specified by:
visitCaseLabel
in interfaceIAstVisitor<Void,
Void>
-
visitThrowStatement
- Specified by:
visitThrowStatement
in interfaceIAstVisitor<Void,
Void>
-
visitCatchClause
- Specified by:
visitCatchClause
in interfaceIAstVisitor<Void,
Void>
-
visitAnnotation
- Specified by:
visitAnnotation
in interfaceIAstVisitor<Void,
Void>
-
visitNewLine
- Specified by:
visitNewLine
in interfaceIAstVisitor<Void,
Void>
-
visitVariableDeclaration
- Specified by:
visitVariableDeclaration
in interfaceIAstVisitor<Void,
Void>
-
writeVariableDeclaration
-
visitVariableInitializer
- Specified by:
visitVariableInitializer
in interfaceIAstVisitor<Void,
Void>
-
visitText
- Specified by:
visitText
in interfaceIAstVisitor<Void,
Void>
-
visitImportDeclaration
- Specified by:
visitImportDeclaration
in interfaceIAstVisitor<Void,
Void>
-
visitSimpleType
- Specified by:
visitSimpleType
in interfaceIAstVisitor<Void,
Void>
-
visitMethodDeclaration
- Specified by:
visitMethodDeclaration
in interfaceIAstVisitor<Void,
Void>
-
visitInitializerBlock
- Specified by:
visitInitializerBlock
in interfaceIAstVisitor<Void,
Void>
-
visitConstructorDeclaration
- Specified by:
visitConstructorDeclaration
in interfaceIAstVisitor<Void,
Void>
-
visitTypeParameterDeclaration
- Specified by:
visitTypeParameterDeclaration
in interfaceIAstVisitor<Void,
Void>
-
visitParameterDeclaration
- Specified by:
visitParameterDeclaration
in interfaceIAstVisitor<Void,
Void>
-
visitFieldDeclaration
- Specified by:
visitFieldDeclaration
in interfaceIAstVisitor<Void,
Void>
-
visitLocalTypeDeclarationStatement
- Specified by:
visitLocalTypeDeclarationStatement
in interfaceIAstVisitor<Void,
Void>
-
visitInlinedBytecode
- Specified by:
visitInlinedBytecode
in interfaceIAstVisitor<Void,
Void>
-
visitBytecodeConstant
- Specified by:
visitBytecodeConstant
in interfaceIAstVisitor<Void,
Void>
-
visitTypeDeclaration
- Specified by:
visitTypeDeclaration
in interfaceIAstVisitor<Void,
Void>
-
writeMembers
-
visitModuleDeclaration
- Specified by:
visitModuleDeclaration
in interfaceIAstVisitor<Void,
Void>
-
visitCompilationUnit
- Specified by:
visitCompilationUnit
in interfaceIAstVisitor<Void,
Void>
-
visitPackageDeclaration
- Specified by:
visitPackageDeclaration
in interfaceIAstVisitor<Void,
Void>
-
visitArraySpecifier
- Specified by:
visitArraySpecifier
in interfaceIAstVisitor<Void,
Void>
-
visitComposedType
- Specified by:
visitComposedType
in interfaceIAstVisitor<Void,
Void>
-
visitIntersectionType
- Specified by:
visitIntersectionType
in interfaceIAstVisitor<Void,
Void>
-
visitUnionType
- Specified by:
visitUnionType
in interfaceIAstVisitor<Void,
Void>
-
visitWhileStatement
- Specified by:
visitWhileStatement
in interfaceIAstVisitor<Void,
Void>
-
visitPrimitiveExpression
- Specified by:
visitPrimitiveExpression
in interfaceIAstVisitor<Void,
Void>
-
isBitwiseContext
-
writePrimitiveValue
-
currentCompilerTarget
-
canWriteTextBlock
-
countLines
-
countLines
-
visitCastExpression
- Specified by:
visitCastExpression
in interfaceIAstVisitor<Void,
Void>
-
visitBinaryOperatorExpression
- Specified by:
visitBinaryOperatorExpression
in interfaceIAstVisitor<Void,
Void>
-
visitInstanceOfExpression
- Specified by:
visitInstanceOfExpression
in interfaceIAstVisitor<Void,
Void>
-
visitIndexerExpression
- Specified by:
visitIndexerExpression
in interfaceIAstVisitor<Void,
Void>
-
visitIdentifierExpression
- Specified by:
visitIdentifierExpression
in interfaceIAstVisitor<Void,
Void>
-
visitUnaryOperatorExpression
- Specified by:
visitUnaryOperatorExpression
in interfaceIAstVisitor<Void,
Void>
-
visitConditionalExpression
- Specified by:
visitConditionalExpression
in interfaceIAstVisitor<Void,
Void>
-
visitArrayInitializerExpression
- Specified by:
visitArrayInitializerExpression
in interfaceIAstVisitor<Void,
Void>
-
writeInitializerElements
-
visitObjectCreationExpression
- Specified by:
visitObjectCreationExpression
in interfaceIAstVisitor<Void,
Void>
-
visitAnonymousObjectCreationExpression
public Void visitAnonymousObjectCreationExpression(AnonymousObjectCreationExpression node, Void ignored) - Specified by:
visitAnonymousObjectCreationExpression
in interfaceIAstVisitor<Void,
Void>
-
visitWildcardType
- Specified by:
visitWildcardType
in interfaceIAstVisitor<Void,
Void>
-
visitMethodGroupExpression
- Specified by:
visitMethodGroupExpression
in interfaceIAstVisitor<Void,
Void>
-
visitEnumValueDeclaration
- Specified by:
visitEnumValueDeclaration
in interfaceIAstVisitor<Void,
Void>
-
visitAssertStatement
- Specified by:
visitAssertStatement
in interfaceIAstVisitor<Void,
Void>
-
visitLambdaExpression
- Specified by:
visitLambdaExpression
in interfaceIAstVisitor<Void,
Void>
-
lambdaNeedsParenthesis
-
visitArrayCreationExpression
- Specified by:
visitArrayCreationExpression
in interfaceIAstVisitor<Void,
Void>
-
visitAssignmentExpression
- Specified by:
visitAssignmentExpression
in interfaceIAstVisitor<Void,
Void>
-
visitForStatement
- Specified by:
visitForStatement
in interfaceIAstVisitor<Void,
Void>
-
visitForEachStatement
- Specified by:
visitForEachStatement
in interfaceIAstVisitor<Void,
Void>
-
visitTryCatchStatement
- Specified by:
visitTryCatchStatement
in interfaceIAstVisitor<Void,
Void>
-
visitGotoStatement
- Specified by:
visitGotoStatement
in interfaceIAstVisitor<Void,
Void>
-
visitParenthesizedExpression
- Specified by:
visitParenthesizedExpression
in interfaceIAstVisitor<Void,
Void>
-
visitSynchronizedStatement
- Specified by:
visitSynchronizedStatement
in interfaceIAstVisitor<Void,
Void>
-
convertCharacter
-
escapeUnicode
-
isKeyword
-
isKeyword
-