public class ClassDeclarationFinder extends Visitor
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 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 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.
|
Visitor |
preVisit(ClassDeclaration classDeclaration)
Creates optimizer local to the newly generated class.
|
Visitor |
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,
List<MemberDeclaration> memberDeclarations) |
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
protected final 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 Visitor preVisit(NewExpression newExpression)
public Visitor preVisit(ClassDeclaration classDeclaration)
public Expression visit(NewExpression newExpression, List<Expression> arguments, 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 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-2014 Julian Hyde. All Rights Reserved.