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 INodeprivate static final charprivate static final charFields inherited from class ContextTrackingVisitor
context -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate booleananyIsString(List<Expression> expressions) private booleananyIsString(List<Expression> expressions, int start, int end) private voidconvertStringBuilderToConcatenation(ObjectCreationExpression node, Expression firstArgument) private voidhandleIndyConcat(InvocationExpression parent, AstNodeCollection<Expression> arguments) private voidhandleIndyConcatWithConstants(InvocationExpression parent, DynamicCallSite callSite, AstNodeCollection<Expression> arguments) private booleanisStringBuilder(TypeReference typeReference) private static intnextMarker(String pattern, int start) visitInlinedBytecode(InlinedBytecodeExpression node, Void data) Methods inherited from class ContextTrackingVisitor
inConstructor, inMethod, inStaticInitializer, makeType, makeType, resolver, run, visitConstructorDeclaration, visitMethodDeclaration, visitMethodDeclarationOverride, visitTypeDeclaration, visitTypeDeclarationOverrideMethods inherited from class 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:
visitInlinedBytecodein interfaceIAstVisitor<Void,Void> - Overrides:
visitInlinedBytecodein classDepthFirstAstVisitor<Void,Void>
-
handleIndyConcat
-
handleIndyConcatWithConstants
private void handleIndyConcatWithConstants(InvocationExpression parent, DynamicCallSite callSite, AstNodeCollection<Expression> arguments) -
nextMarker
-
visitObjectCreationExpression
- Specified by:
visitObjectCreationExpressionin interfaceIAstVisitor<Void,Void> - Overrides:
visitObjectCreationExpressionin classDepthFirstAstVisitor<Void,Void>
-
isStringBuilder
-
convertStringBuilderToConcatenation
private void convertStringBuilderToConcatenation(ObjectCreationExpression node, Expression firstArgument) -
anyIsString
-
anyIsString
-