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 intBOOTSTRAP_ARG_OFFSETprotected TypeDeclarationcurrentTypeprotected static java.lang.StringM_DESC_AS_TYPEprotected static java.lang.StringM_DESC_DYNAMIC_INVOKERprotected static java.lang.StringM_DESC_GET_CLASSprotected static java.lang.StringM_DESC_INSERT_ARGUMENTSprotected static java.lang.StringM_DESC_INVOKE_EXACTprotected static java.lang.StringM_DESC_METHOD_TYPEprotected static java.lang.StringM_DESC_PERMUTE_ARGUMENTSprotected static java.lang.StringM_DESC_RETURN_TYPEprotected static java.lang.StringM_DESC_THROW_EXCEPTIONprotected static java.lang.StringM_SIGNATURE_LOOKUPprotected static java.lang.StringM_SIGNATURE_PRIVATE_LOOKUPprivate static java.util.concurrent.atomic.AtomicIntegerNEXT_IDprotected MetadataParserparserprotected IMetadataResolverresolverprotected static java.lang.StringT_DESC_CALL_SITEprotected static java.lang.StringT_DESC_CLASSprotected static java.lang.StringT_DESC_LOOKUPprotected static java.lang.StringT_DESC_METHOD_HANDLEprotected static java.lang.StringT_DESC_METHOD_HANDLESprotected static java.lang.StringT_DESC_METHOD_TYPEprotected static java.lang.StringT_DESC_REFLECTION_EXCEPTIONprotected static java.lang.StringT_DESC_STRINGprotected static java.lang.StringT_DESC_T_DESCRIPTORprotected static java.lang.StringT_DESC_T_DESCRIPTOR_INNER_PREFIXprotected static java.lang.StringT_DESC_THROWABLEprotected static java.lang.StringT_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:
visitTypeDeclarationOverridein 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)
-
-