public class ClassDeclarationFinder extends Shuttle
| Modifier and Type | Field and Description |
|---|---|
protected List<MemberDeclaration> |
addedDeclarations
The list of new final static fields to be added to the current class.
|
protected @Nullable ClassDeclarationFinder |
parent |
| Modifier | Constructor and Description |
|---|---|
protected |
ClassDeclarationFinder(ClassDeclarationFinder parent)
Creates a child optimizer.
|
| Modifier and Type | Method and Description |
|---|---|
static ClassDeclarationFinder |
create()
Creates visitor that uses default optimizer.
|
static ClassDeclarationFinder |
create(Class<? extends ClassDeclarationFinder> optimizingClass)
Creates visitor that uses given class as optimizer.
|
static ClassDeclarationFinder |
create(Function1<ClassDeclarationFinder,ClassDeclarationFinder> childFactory)
Creates visitor that uses given factory to create optimizers.
|
protected @Nullable ParameterExpression |
findDeclaredExpression(Expression expression)
Finds if there exists ready for reuse declaration for given expression.
|
protected ClassDeclarationFinder |
goDeeper()
Creates child visitor.
|
protected boolean |
hasField(String name)
Verifies if the variable name is already in use.
|
protected boolean |
isConstant(Expression expression)
Verifies if the expression is effectively constant.
|
protected boolean |
isConstant(Iterable<? extends Expression> list)
Verifies if all the expressions in given list are effectively constant.
|
protected void |
learnFinalStaticDeclarations(List<MemberDeclaration> memberDeclarations)
Processes the list of declarations when class expression detected.
|
protected List<MemberDeclaration> |
optimizeDeclarations(List<MemberDeclaration> memberDeclarations)
Adds new declarations (e.g.
|
Shuttle |
preVisit(ClassDeclaration classDeclaration)
Creates optimizer local to the newly generated class.
|
Shuttle |
preVisit(NewExpression newExpression)
Creates optimizer local to the newly generated anonymous class.
|
protected Expression |
tryOptimizeNewInstance(NewExpression newExpression)
Optimizes
new Type() constructs. |
ClassDeclaration |
visit(ClassDeclaration classDeclaration,
List<MemberDeclaration> memberDeclarations) |
Expression |
visit(NewExpression newExpression,
List<Expression> arguments,
@Nullable List<MemberDeclaration> memberDeclarations) |
preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, preVisit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitprotected final @Nullable ClassDeclarationFinder parent
protected final List<MemberDeclaration> addedDeclarations
protected ClassDeclarationFinder(ClassDeclarationFinder parent)
parent - parent optimizerpublic static ClassDeclarationFinder create()
public static ClassDeclarationFinder create(Class<? extends ClassDeclarationFinder> optimizingClass)
ClassDeclarationFinder)
constructor.optimizingClass - class that implements optimizationspublic static ClassDeclarationFinder create(Function1<ClassDeclarationFinder,ClassDeclarationFinder> childFactory)
childFactory - factory that creates optimizerspublic Shuttle preVisit(NewExpression newExpression)
public Shuttle preVisit(ClassDeclaration classDeclaration)
public Expression visit(NewExpression newExpression, List<Expression> arguments, @Nullable List<MemberDeclaration> memberDeclarations)
protected void learnFinalStaticDeclarations(List<MemberDeclaration> memberDeclarations)
memberDeclarations - list of declarations to process.protected Expression tryOptimizeNewInstance(NewExpression newExpression)
new Type() constructs.newExpression - expression to optimizepublic ClassDeclaration visit(ClassDeclaration classDeclaration, List<MemberDeclaration> memberDeclarations)
protected List<MemberDeclaration> optimizeDeclarations(List<MemberDeclaration> memberDeclarations)
memberDeclarations - existing list of declarationsprotected boolean isConstant(Expression expression)
expression - expression to testprotected boolean isConstant(Iterable<? extends Expression> list)
list - list of expressions to testprotected @Nullable ParameterExpression findDeclaredExpression(Expression expression)
expression - input expressionprotected boolean hasField(String name)
name - name of the variable to testprotected ClassDeclarationFinder goDeeper()
Visitor that is used to optimize class declarationsCopyright © 2012-2021 Apache Software Foundation. All Rights Reserved.