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.
|
private Function1<ClassDeclarationFinder,ClassDeclarationFinder> |
childFactory |
private static Function1<ClassDeclarationFinder,ClassDeclarationFinder> |
DEFAULT_CHILD_FACTORY |
protected ClassDeclarationFinder |
parent |
| Modifier | Constructor and Description |
|---|---|
protected |
ClassDeclarationFinder(ClassDeclarationFinder parent)
Creates a child optimizer.
|
private |
ClassDeclarationFinder(Function1<ClassDeclarationFinder,ClassDeclarationFinder> childFactory)
Creates optimizer with no parent.
|
| 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.
|
private static Function1<ClassDeclarationFinder,ClassDeclarationFinder> |
newChildCreator(Class<? extends ClassDeclarationFinder> optimizingClass)
Creates factory that creates instances of optimizing visitors.
|
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) |
eq, 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, visitprotected final ClassDeclarationFinder parent
protected final List<MemberDeclaration> addedDeclarations
private final Function1<ClassDeclarationFinder,ClassDeclarationFinder> childFactory
private static final Function1<ClassDeclarationFinder,ClassDeclarationFinder> DEFAULT_CHILD_FACTORY
private ClassDeclarationFinder(Function1<ClassDeclarationFinder,ClassDeclarationFinder> childFactory)
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 optimizersprivate static Function1<ClassDeclarationFinder,ClassDeclarationFinder> newChildCreator(Class<? extends ClassDeclarationFinder> optimizingClass)
ClassDeclarationFinder)
constructor.optimizingClass - class that implements optimizationspublic 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–2016 The Apache Software Foundation. All rights reserved.