Class AstBuilder
- java.lang.Object
-
- com.strobel.decompiler.languages.java.ast.AstBuilder
-
public final class AstBuilder extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private CompilationUnit
_compileUnit
private DecompilerContext
_context
private boolean
_decompileMethodBodies
private boolean
_haveTransformationsRun
private TextNode
_packagePlaceholder
private int
_suppressImportsDepth
private java.util.Map<java.lang.String,java.lang.ref.Reference<TypeDeclaration>>
_typeDeclarations
private java.util.Map<java.lang.String,java.lang.String>
_unqualifiedTypeNames
-
Constructor Summary
Constructors Constructor Description AstBuilder(DecompilerContext context)
-
Method Summary
-
-
-
Field Detail
-
_context
private final DecompilerContext _context
-
_compileUnit
private final CompilationUnit _compileUnit
-
_typeDeclarations
private final java.util.Map<java.lang.String,java.lang.ref.Reference<TypeDeclaration>> _typeDeclarations
-
_unqualifiedTypeNames
private final java.util.Map<java.lang.String,java.lang.String> _unqualifiedTypeNames
-
_packagePlaceholder
private final TextNode _packagePlaceholder
-
_decompileMethodBodies
private boolean _decompileMethodBodies
-
_haveTransformationsRun
private boolean _haveTransformationsRun
-
_suppressImportsDepth
private int _suppressImportsDepth
-
-
Constructor Detail
-
AstBuilder
public AstBuilder(DecompilerContext context)
-
-
Method Detail
-
getContext
final DecompilerContext getContext()
-
areImportsSuppressed
public final boolean areImportsSuppressed()
-
suppressImports
public final SafeCloseable suppressImports()
-
getDecompileMethodBodies
public final boolean getDecompileMethodBodies()
-
setDecompileMethodBodies
public final void setDecompileMethodBodies(boolean decompileMethodBodies)
-
getCompilationUnit
public final CompilationUnit getCompilationUnit()
-
runTransformations
public final void runTransformations()
-
runTransformations
public final void runTransformations(Predicate<IAstTransform> transformAbortCondition)
-
addType
public final void addType(TypeDefinition type)
-
createType
public final TypeDeclaration createType(TypeDefinition type)
-
createModuleNoCache
protected final ModuleDeclaration createModuleNoCache(TypeDefinition type, ModuleAttribute attribute)
-
createTypeNoCache
protected final TypeDeclaration createTypeNoCache(TypeDefinition type)
-
convertType
public AstType convertType(TypeReference type)
-
convertType
public AstType convertType(TypeReference type, ConvertTypeOptions options)
-
createParameters
public final java.util.List<ParameterDeclaration> createParameters(java.lang.Iterable<ParameterDefinition> parameters)
-
convertType
final AstType convertType(TypeReference type, MutableInteger typeIndex, ConvertTypeOptions options)
-
isContextWithinType
private boolean isContextWithinType(TypeReference type)
-
createTypeCore
private TypeDeclaration createTypeCore(TypeDefinition type)
-
scrubAccessModifiers
private long scrubAccessModifiers(long flags)
-
addTypeMembers
private void addTypeMembers(TypeDeclaration astType, TypeDefinition type)
-
sortNestedTypes
private static void sortNestedTypes(java.util.List<TypeDefinition> types)
-
findFirstLineNumber
private static java.lang.Integer findFirstLineNumber(TypeDefinition type)
-
createField
private FieldDeclaration createField(FieldDefinition field)
-
createMethod
public final MethodDeclaration createMethod(MethodDefinition method)
-
createConstructor
private ConstructorDeclaration createConstructor(MethodDefinition method)
-
createTypeParameters
final java.util.List<TypeParameterDeclaration> createTypeParameters(java.util.List<GenericParameter> genericParameters)
-
addTypeArguments
static void addTypeArguments(TypeReference type, AstType astType)
-
applyTypeArguments
static void applyTypeArguments(AstType baseType, java.util.List<AstType> typeArguments)
-
createMethodBody
private BlockStatement createMethodBody(MethodDefinition method, java.lang.Iterable<ParameterDeclaration> parameters)
-
makePrimitive
public static Expression makePrimitive(long val, TypeReference type)
-
makeDefaultValue
public static Expression makeDefaultValue(TypeReference type)
-
generateCode
public java.util.List<LineNumberPosition> generateCode(ITextOutput output)
-
isMemberHidden
public static boolean isMemberHidden(IMemberDefinition member, DecompilerContext context)
-
findLocalType
private static TypeReference findLocalType(TypeReference type)
-
createAnnotation
public Annotation createAnnotation(CustomAnnotation annotation)
-
createAnnotationElement
public Expression createAnnotationElement(AnnotationElement element)
-
-