Class IntroduceStringConcatenationTransform
java.lang.Object
com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor<Void,Void>
com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor<Void>
com.strobel.decompiler.languages.java.ast.transforms.IntroduceStringConcatenationTransform
- All Implemented Interfaces:
IAstVisitor<Void,
,Void> IAstTransform
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final INode
private static final char
private static final char
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
anyIsString
(List<Expression> expressions) private boolean
anyIsString
(List<Expression> expressions, int start, int end) private void
convertStringBuilderToConcatenation
(ObjectCreationExpression node, Expression firstArgument) private void
handleIndyConcat
(InvocationExpression parent, AstNodeCollection<Expression> arguments) private void
handleIndyConcatWithConstants
(InvocationExpression parent, DynamicCallSite callSite, AstNodeCollection<Expression> arguments) private boolean
isStringBuilder
(TypeReference typeReference) private static int
nextMarker
(String pattern, int start) visitInlinedBytecode
(InlinedBytecodeExpression node, Void data) Methods inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
inConstructor, inMethod, inStaticInitializer, makeType, makeType, resolver, run, visitConstructorDeclaration, visitMethodDeclaration, visitMethodDeclarationOverride, visitTypeDeclaration, visitTypeDeclarationOverride
Methods inherited from class com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor
shouldContinue, visitAnnotation, visitAnonymousObjectCreationExpression, visitArrayCreationExpression, visitArrayInitializerExpression, visitArraySpecifier, visitAssertStatement, visitAssignmentExpression, visitBinaryOperatorExpression, visitBlockStatement, visitBreakStatement, visitBytecodeConstant, visitCaseLabel, visitCastExpression, visitCatchClause, visitChildren, visitClassOfExpression, visitComment, visitCompilationUnit, visitComposedType, visitConditionalExpression, visitContinueStatement, visitDoWhileStatement, visitEmptyStatement, visitEnumValueDeclaration, visitExpressionStatement, visitFieldDeclaration, visitForEachStatement, visitForStatement, visitGotoStatement, visitIdentifier, visitIdentifierExpression, visitIfElseStatement, visitImportDeclaration, visitIndexerExpression, visitInitializerBlock, visitInstanceOfExpression, visitIntersectionType, visitInvocationExpression, visitJavaTokenNode, visitLabeledStatement, visitLabelStatement, visitLambdaExpression, visitLocalTypeDeclarationStatement, visitMemberReferenceExpression, visitMethodGroupExpression, visitModuleDeclaration, visitNewLine, visitNullReferenceExpression, visitPackageDeclaration, visitParameterDeclaration, visitParenthesizedExpression, visitPatternPlaceholder, visitPrimitiveExpression, visitReturnStatement, visitSimpleType, visitSuperReferenceExpression, visitSwitchExpression, visitSwitchExpressionArm, visitSwitchSection, visitSwitchStatement, visitSynchronizedStatement, visitText, visitThisReferenceExpression, visitThrowStatement, visitTryCatchStatement, visitTypeParameterDeclaration, visitTypeReference, visitUnaryOperatorExpression, visitUnionType, visitVariableDeclaration, visitVariableInitializer, visitWhileStatement, visitWildcardType
-
Field Details
-
ARGUMENT_MARKER
private static final char ARGUMENT_MARKER- See Also:
-
CONSTANT_MARKER
private static final char CONSTANT_MARKER- See Also:
-
_stringBuilderArgumentPattern
-
-
Constructor Details
-
IntroduceStringConcatenationTransform
-
-
Method Details
-
visitInlinedBytecode
- Specified by:
visitInlinedBytecode
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitInlinedBytecode
in classDepthFirstAstVisitor<Void,
Void>
-
handleIndyConcat
-
handleIndyConcatWithConstants
private void handleIndyConcatWithConstants(InvocationExpression parent, DynamicCallSite callSite, AstNodeCollection<Expression> arguments) -
nextMarker
-
visitObjectCreationExpression
- Specified by:
visitObjectCreationExpression
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitObjectCreationExpression
in classDepthFirstAstVisitor<Void,
Void>
-
isStringBuilder
-
convertStringBuilderToConcatenation
private void convertStringBuilderToConcatenation(ObjectCreationExpression node, Expression firstArgument) -
anyIsString
-
anyIsString
-