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 intprotected TypeDeclarationprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprivate static final AtomicIntegerprotected final MetadataParserprotected IMetadataResolverprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final Stringprotected static final StringFields inherited from class ContextTrackingVisitor
context -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected FieldDeclarationdeclareField(FieldDefinition fd, Expression initializer, int extraFlags) protected InvocationExpressionmakeBootstrapCall(DynamicCallSite callSite, Variable lookupVariable) protected VariablemakeCatchVariable(String name, TypeReference type) protected InvocationExpressionmakeMethodHandle(Expression lookup, MethodHandle handle) protected InvocationExpressionmakeMethodHandle(Expression lookup, MethodHandle handle, Expression methodType) protected InvocationExpressionmakeMethodHandle(Expression lookup, MethodHandle handle, Expression methodType, TypeReference optionalSpecialCaller) protected InvocationExpressionmakeMethodType(IMethodSignature methodSignature) protected MemberReferenceExpressionmakeReference(MemberReference reference) protected MethodDeclarationnewMethod(MethodDefinition definition) protected static intprotected MethodReferenceresolveLookupMethod(TypeReference lookupType, String methodName, String returnType) protected static IMetadataResolverresolver(TypeReference parentType) protected TypeReferenceprotected ExpressiontryConvertArgument(Variable lookupVariable, AstType methodHandles, ParameterDefinition p, DynamicCallSite callSite, int argumentIndex, boolean isVarArgs) protected IdentifierExpressionvarReference(Variable variable) protected IdentifierExpressionvarReference(AstNode declaration) protected VoidvisitTypeDeclarationOverride(TypeDeclaration typeDeclaration, Void p) Methods inherited from class ContextTrackingVisitor
inConstructor, inMethod, inStaticInitializer, makeType, makeType, resolver, run, visitConstructorDeclaration, visitMethodDeclaration, visitMethodDeclarationOverride, visitTypeDeclarationMethods 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, 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:
visitTypeDeclarationOverridein 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)
-