Class AbstractHelperClassTransform
- java.lang.Object
-
- com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor<java.lang.Void,TResult>
-
- com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor<java.lang.Void>
-
- com.strobel.decompiler.languages.java.ast.transforms.AbstractHelperClassTransform
-
- All Implemented Interfaces:
IAstVisitor<java.lang.Void,java.lang.Void>
,IAstTransform
- Direct Known Subclasses:
InvokeDynamicRewriter
,MethodHandleConstantRewriter
public abstract class AbstractHelperClassTransform extends ContextTrackingVisitor<java.lang.Void>
-
-
Field Summary
Fields Modifier and Type Field Description protected int
BOOTSTRAP_ARG_OFFSET
protected TypeDeclaration
currentType
protected static java.lang.String
M_DESC_AS_TYPE
protected static java.lang.String
M_DESC_DYNAMIC_INVOKER
protected static java.lang.String
M_DESC_GET_CLASS
protected static java.lang.String
M_DESC_INSERT_ARGUMENTS
protected static java.lang.String
M_DESC_INVOKE_EXACT
protected static java.lang.String
M_DESC_METHOD_TYPE
protected static java.lang.String
M_DESC_PERMUTE_ARGUMENTS
protected static java.lang.String
M_DESC_RETURN_TYPE
protected static java.lang.String
M_DESC_THROW_EXCEPTION
protected static java.lang.String
M_SIGNATURE_LOOKUP
protected static java.lang.String
M_SIGNATURE_PRIVATE_LOOKUP
private static java.util.concurrent.atomic.AtomicInteger
NEXT_ID
protected MetadataParser
parser
protected IMetadataResolver
resolver
protected static java.lang.String
T_DESC_CALL_SITE
protected static java.lang.String
T_DESC_CLASS
protected static java.lang.String
T_DESC_LOOKUP
protected static java.lang.String
T_DESC_METHOD_HANDLE
protected static java.lang.String
T_DESC_METHOD_HANDLES
protected static java.lang.String
T_DESC_METHOD_TYPE
protected static java.lang.String
T_DESC_REFLECTION_EXCEPTION
protected static java.lang.String
T_DESC_STRING
protected static java.lang.String
T_DESC_T_DESCRIPTOR
protected static java.lang.String
T_DESC_T_DESCRIPTOR_INNER_PREFIX
protected static java.lang.String
T_DESC_THROWABLE
protected static java.lang.String
T_DESC_THROWABLE_WRAPPER
-
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
-
Constructor Summary
Constructors Constructor Description AbstractHelperClassTransform(DecompilerContext context)
-
Method Summary
-
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 Detail
-
BOOTSTRAP_ARG_OFFSET
protected final int BOOTSTRAP_ARG_OFFSET
- See Also:
- Constant Field Values
-
T_DESC_STRING
protected static final java.lang.String T_DESC_STRING
- See Also:
- Constant Field Values
-
T_DESC_CLASS
protected static final java.lang.String T_DESC_CLASS
- See Also:
- Constant Field Values
-
T_DESC_METHOD_TYPE
protected static final java.lang.String T_DESC_METHOD_TYPE
- See Also:
- Constant Field Values
-
T_DESC_T_DESCRIPTOR
protected static final java.lang.String T_DESC_T_DESCRIPTOR
- See Also:
- Constant Field Values
-
T_DESC_T_DESCRIPTOR_INNER_PREFIX
protected static final java.lang.String T_DESC_T_DESCRIPTOR_INNER_PREFIX
- See Also:
- Constant Field Values
-
T_DESC_METHOD_HANDLE
protected static final java.lang.String T_DESC_METHOD_HANDLE
- See Also:
- Constant Field Values
-
T_DESC_METHOD_HANDLES
protected static final java.lang.String T_DESC_METHOD_HANDLES
- See Also:
- Constant Field Values
-
T_DESC_LOOKUP
protected static final java.lang.String T_DESC_LOOKUP
- See Also:
- Constant Field Values
-
M_SIGNATURE_LOOKUP
protected static final java.lang.String M_SIGNATURE_LOOKUP
- See Also:
- Constant Field Values
-
M_SIGNATURE_PRIVATE_LOOKUP
protected static final java.lang.String M_SIGNATURE_PRIVATE_LOOKUP
- See Also:
- Constant Field Values
-
M_DESC_METHOD_TYPE
protected static final java.lang.String M_DESC_METHOD_TYPE
- See Also:
- Constant Field Values
-
T_DESC_THROWABLE
protected static final java.lang.String T_DESC_THROWABLE
- See Also:
- Constant Field Values
-
T_DESC_THROWABLE_WRAPPER
protected static final java.lang.String T_DESC_THROWABLE_WRAPPER
- See Also:
- Constant Field Values
-
T_DESC_REFLECTION_EXCEPTION
protected static final java.lang.String T_DESC_REFLECTION_EXCEPTION
- See Also:
- Constant Field Values
-
T_DESC_CALL_SITE
protected static final java.lang.String T_DESC_CALL_SITE
- See Also:
- Constant Field Values
-
M_DESC_INVOKE_EXACT
protected static final java.lang.String M_DESC_INVOKE_EXACT
- See Also:
- Constant Field Values
-
M_DESC_THROW_EXCEPTION
protected static final java.lang.String M_DESC_THROW_EXCEPTION
- See Also:
- Constant Field Values
-
M_DESC_INSERT_ARGUMENTS
protected static final java.lang.String M_DESC_INSERT_ARGUMENTS
- See Also:
- Constant Field Values
-
M_DESC_PERMUTE_ARGUMENTS
protected static final java.lang.String M_DESC_PERMUTE_ARGUMENTS
- See Also:
- Constant Field Values
-
M_DESC_AS_TYPE
protected static final java.lang.String M_DESC_AS_TYPE
- See Also:
- Constant Field Values
-
M_DESC_RETURN_TYPE
protected static final java.lang.String M_DESC_RETURN_TYPE
- See Also:
- Constant Field Values
-
M_DESC_GET_CLASS
protected static final java.lang.String M_DESC_GET_CLASS
- See Also:
- Constant Field Values
-
M_DESC_DYNAMIC_INVOKER
protected static final java.lang.String M_DESC_DYNAMIC_INVOKER
- See Also:
- Constant Field Values
-
parser
protected final MetadataParser parser
-
currentType
protected TypeDeclaration currentType
-
resolver
protected IMetadataResolver resolver
-
NEXT_ID
private static final java.util.concurrent.atomic.AtomicInteger NEXT_ID
-
-
Constructor Detail
-
AbstractHelperClassTransform
public AbstractHelperClassTransform(DecompilerContext context)
-
-
Method Detail
-
nextUniqueId
protected static int nextUniqueId()
-
visitTypeDeclarationOverride
protected java.lang.Void visitTypeDeclarationOverride(TypeDeclaration typeDeclaration, java.lang.Void p)
- Overrides:
visitTypeDeclarationOverride
in classContextTrackingVisitor<java.lang.Void>
-
resolver
protected static IMetadataResolver resolver(TypeReference parentType)
-
translateArgumentType
protected TypeReference translateArgumentType(java.lang.Object o)
-
newMethod
protected MethodDeclaration newMethod(MethodDefinition definition)
-
makeReference
protected MemberReferenceExpression makeReference(MemberReference reference)
-
varReference
protected IdentifierExpression varReference(AstNode declaration)
-
varReference
protected IdentifierExpression varReference(Variable variable)
-
declareField
protected FieldDeclaration declareField(@NotNull FieldDefinition fd, @NotNull Expression initializer, int extraFlags)
-
makeMethodType
protected InvocationExpression makeMethodType(IMethodSignature methodSignature)
-
makeMethodHandle
protected InvocationExpression makeMethodHandle(Expression lookup, MethodHandle handle)
-
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, java.lang.String methodName, java.lang.String returnType)
-
makeCatchVariable
protected Variable makeCatchVariable(@NotNull java.lang.String name, @NotNull TypeReference type)
-
makeBootstrapCall
protected InvocationExpression makeBootstrapCall(DynamicCallSite callSite, Variable lookupVariable)
-
tryConvertArgument
@Nullable protected Expression tryConvertArgument(Variable lookupVariable, AstType methodHandles, ParameterDefinition p, DynamicCallSite callSite, int argumentIndex, boolean isVarArgs)
-
-