Class AbstractHelperClassTransform
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.AbstractHelperClassTransform
- All Implemented Interfaces:
IAstVisitor<Void,
,Void> IAstTransform
- Direct Known Subclasses:
InvokeDynamicRewriter
,MethodHandleConstantRewriter
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final int
protected TypeDeclaration
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
private static final AtomicInteger
protected final MetadataParser
protected IMetadataResolver
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
protected static final String
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected FieldDeclaration
declareField
(FieldDefinition fd, Expression initializer, int extraFlags) protected InvocationExpression
makeBootstrapCall
(DynamicCallSite callSite, Variable lookupVariable) protected Variable
makeCatchVariable
(String name, TypeReference type) protected InvocationExpression
makeMethodHandle
(Expression lookup, MethodHandle handle) protected InvocationExpression
makeMethodHandle
(Expression lookup, MethodHandle handle, Expression methodType) protected InvocationExpression
makeMethodHandle
(Expression lookup, MethodHandle handle, Expression methodType, TypeReference optionalSpecialCaller) protected InvocationExpression
makeMethodType
(IMethodSignature methodSignature) protected MemberReferenceExpression
makeReference
(MemberReference reference) protected MethodDeclaration
newMethod
(MethodDefinition definition) protected static int
protected MethodReference
resolveLookupMethod
(TypeReference lookupType, String methodName, String returnType) protected static IMetadataResolver
resolver
(TypeReference parentType) protected TypeReference
protected Expression
tryConvertArgument
(Variable lookupVariable, AstType methodHandles, ParameterDefinition p, DynamicCallSite callSite, int argumentIndex, boolean isVarArgs) protected IdentifierExpression
varReference
(Variable variable) protected IdentifierExpression
varReference
(AstNode declaration) protected Void
visitTypeDeclarationOverride
(TypeDeclaration typeDeclaration, Void p) Methods inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
inConstructor, inMethod, inStaticInitializer, makeType, makeType, resolver, run, visitConstructorDeclaration, visitMethodDeclaration, visitMethodDeclarationOverride, visitTypeDeclaration
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, visitInlinedBytecode, visitInstanceOfExpression, visitIntersectionType, visitInvocationExpression, visitJavaTokenNode, visitLabeledStatement, visitLabelStatement, visitLambdaExpression, visitLocalTypeDeclarationStatement, visitMemberReferenceExpression, visitMethodGroupExpression, visitModuleDeclaration, visitNewLine, visitNullReferenceExpression, visitObjectCreationExpression, 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
-
BOOTSTRAP_ARG_OFFSET
protected final int BOOTSTRAP_ARG_OFFSET- See Also:
-
T_DESC_STRING
- See Also:
-
T_DESC_CLASS
- See Also:
-
T_DESC_METHOD_TYPE
- See Also:
-
T_DESC_T_DESCRIPTOR
- See Also:
-
T_DESC_T_DESCRIPTOR_INNER_PREFIX
- See Also:
-
T_DESC_METHOD_HANDLE
- See Also:
-
T_DESC_METHOD_HANDLES
- See Also:
-
T_DESC_LOOKUP
- See Also:
-
M_SIGNATURE_LOOKUP
- See Also:
-
M_SIGNATURE_PRIVATE_LOOKUP
- See Also:
-
M_DESC_METHOD_TYPE
- See Also:
-
T_DESC_THROWABLE
- See Also:
-
T_DESC_THROWABLE_WRAPPER
- See Also:
-
T_DESC_REFLECTION_EXCEPTION
- See Also:
-
T_DESC_CALL_SITE
- See Also:
-
M_DESC_INVOKE_EXACT
- See Also:
-
M_DESC_THROW_EXCEPTION
- See Also:
-
M_DESC_INSERT_ARGUMENTS
- See Also:
-
M_DESC_PERMUTE_ARGUMENTS
- See Also:
-
M_DESC_AS_TYPE
- See Also:
-
M_DESC_RETURN_TYPE
- See Also:
-
M_DESC_GET_CLASS
- See Also:
-
M_DESC_DYNAMIC_INVOKER
- See Also:
-
parser
-
currentType
-
resolver
-
NEXT_ID
-
-
Constructor Details
-
AbstractHelperClassTransform
-
-
Method Details
-
nextUniqueId
protected static int nextUniqueId() -
visitTypeDeclarationOverride
- Overrides:
visitTypeDeclarationOverride
in classContextTrackingVisitor<Void>
-
resolver
-
translateArgumentType
-
newMethod
-
makeReference
-
varReference
-
varReference
-
declareField
protected FieldDeclaration declareField(@NotNull FieldDefinition fd, @NotNull Expression initializer, int extraFlags) -
makeMethodType
-
makeMethodHandle
-
makeMethodHandle
protected InvocationExpression makeMethodHandle(Expression lookup, MethodHandle handle, @Nullable Expression methodType) -
makeMethodHandle
protected InvocationExpression makeMethodHandle(Expression lookup, MethodHandle handle, @Nullable Expression methodType, @Nullable TypeReference optionalSpecialCaller) -
resolveLookupMethod
protected MethodReference resolveLookupMethod(TypeReference lookupType, String methodName, String returnType) -
makeCatchVariable
-
makeBootstrapCall
-
tryConvertArgument
@Nullable protected Expression tryConvertArgument(Variable lookupVariable, AstType methodHandles, ParameterDefinition p, DynamicCallSite callSite, int argumentIndex, boolean isVarArgs)
-