Class AstMethodBodyBuilder
- java.lang.Object
-
- com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder
-
public class AstMethodBodyBuilder extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
AstMethodBodyBuilder.MethodVariables
private static class
AstMethodBodyBuilder.VariableInfo<T>
-
Field Summary
Fields Modifier and Type Field Description private AstBuilder
_astBuilder
private DecompilerContext
_context
private java.util.Set<Variable>
_localVariablesToDefine
private MethodDefinition
_method
private MetadataParser
_parser
private static INode
EMPTY_LAMBDA_BODY_PATTERN
private static INode
LAMBDA_BODY_PATTERN
-
Constructor Summary
Constructors Modifier Constructor Description private
AstMethodBodyBuilder(AstBuilder astBuilder, MethodDefinition method, DecompilerContext context)
-
Method Summary
-
-
-
Field Detail
-
_astBuilder
private final AstBuilder _astBuilder
-
_method
private final MethodDefinition _method
-
_parser
private final MetadataParser _parser
-
_context
private final DecompilerContext _context
-
_localVariablesToDefine
private final java.util.Set<Variable> _localVariablesToDefine
-
LAMBDA_BODY_PATTERN
private static final INode LAMBDA_BODY_PATTERN
-
EMPTY_LAMBDA_BODY_PATTERN
private static final INode EMPTY_LAMBDA_BODY_PATTERN
-
-
Constructor Detail
-
AstMethodBodyBuilder
private AstMethodBodyBuilder(AstBuilder astBuilder, MethodDefinition method, DecompilerContext context)
-
-
Method Detail
-
createMethodBody
public static BlockStatement createMethodBody(AstBuilder astBuilder, MethodDefinition method, DecompilerContext context, java.lang.Iterable<ParameterDeclaration> parameters)
-
createErrorBlock
private static BlockStatement createErrorBlock(AstBuilder astBuilder, DecompilerContext context, MethodDefinition method, java.lang.Throwable t)
-
createMethodBody
private BlockStatement createMethodBody(java.lang.Iterable<ParameterDeclaration> parameters)
-
updateParameterDeclarations
private void updateParameterDeclarations(AstMethodBodyBuilder.VariableInfo<?> vi, java.lang.Iterable<ParameterDeclaration> parameterDeclarations)
-
declareVariables
private void declareVariables(AstMethodBodyBuilder.VariableInfo<?> vi, BlockStatement astBlock)
-
transformBlock
private BlockStatement transformBlock(Block block)
-
transformSynchronized
private SynchronizedStatement transformSynchronized(Expression expression, TryCatchBlock tryCatch)
-
transformExpression
private AstNode transformExpression(Expression e, boolean isTopLevel)
-
transformByteCode
private AstNode transformByteCode(Expression byteCode, boolean isTopLevel)
-
transformCall
private Expression transformCall(boolean isVirtual, Expression byteCode, java.util.List<Expression> arguments)
-
convertTypeArguments
private java.util.List<AstType> convertTypeArguments(MethodReference methodReference)
-
adjustArgumentsForMethodCall
private java.util.List<Expression> adjustArgumentsForMethodCall(MethodReference method, java.util.List<Expression> arguments)
-
adjustArgumentsForMethodCallCore
private java.util.List<Expression> adjustArgumentsForMethodCallCore(java.util.List<ParameterDefinition> parameters, java.util.List<Expression> arguments)
-
isCastRequired
private boolean isCastRequired(TypeReference targetType, TypeReference sourceType, boolean exactMatch)
-
inlineAssembly
private static Expression inlineAssembly(Expression byteCode, java.util.List<Expression> arguments)
-
populateVariables
private void populateVariables(AstMethodBodyBuilder.MethodVariables mv, Block body)
-
populateVariables0
private <T> void populateVariables0(AstMethodBodyBuilder.VariableInfo<T> vi, Block body)
-
nameVariables
private void nameVariables(Block body, AstMethodBodyBuilder.VariableInfo<?> vi, java.util.Set<java.lang.String> reservedNames)
-
-