polyglot.visit
Class LocalClassRemover
java.lang.Object
polyglot.visit.NodeVisitor
polyglot.visit.HaltingVisitor
polyglot.visit.ErrorHandlingVisitor
polyglot.visit.ContextVisitor
polyglot.visit.LocalClassRemover
- All Implemented Interfaces:
- java.lang.Cloneable, Copy
public class LocalClassRemover
- extends ContextVisitor
Method Summary |
protected TypeNode |
defaultSuperType(Position pos)
The type to be extended when translating an anonymous class that
implements an interface. |
protected NodeVisitor |
enterCall(Node parent,
Node n)
Replaces the functionality of the enter() method; all
sub-classes should over-ride this method instead of
enter() if there is any chance of exceptions being
generated. |
static void |
hashAdd(java.util.Map map,
java.lang.Object k,
java.lang.Object v)
|
static java.lang.Object |
hashGet(java.util.Map map,
java.lang.Object k,
java.lang.Object v)
|
protected boolean |
isLocal(Context c,
java.lang.String name)
|
protected Node |
leaveCall(Node old,
Node n,
NodeVisitor v)
|
protected Receiver |
makeMissingFieldTarget(FieldInstance fi,
Position pos)
|
Node |
override(Node parent,
Node n)
Given a tree rooted at n , the visitor has the option of
overriding all traversal of the children of n . |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
LocalClassRemover
public LocalClassRemover(Job job,
TypeSystem ts,
NodeFactory nf)
override
public Node override(Node parent,
Node n)
- Description copied from class:
NodeVisitor
- Given a tree rooted at
n
, the visitor has the option of
overriding all traversal of the children of n
. If no
changes were made to n
and the visitor wishes to prevent
further traversal of the tree, then it should return n
. If
changes were made to the subtree, then the visitor should return a
copy of n
with appropriate changes. Finally, if the
visitor does not wish to override traversal of the subtree rooted at
n
, then it should return null
.
The default implementation of this method is to call
override(n)
, as most subclasses do not need to know
the parent of the node n
.
- Overrides:
override
in class HaltingVisitor
- Parameters:
parent
- The parent of n
,
null
if n
has no parent.n
- The root of the subtree to be traversed.
- Returns:
- A node if normal traversal is to stop,
null
if it
is to continue.
enterCall
protected NodeVisitor enterCall(Node parent,
Node n)
throws SemanticException
- Description copied from class:
ErrorHandlingVisitor
- Replaces the functionality of the
enter()
method; all
sub-classes should over-ride this method instead of
enter()
if there is any chance of exceptions being
generated.
This method is the replacement for the enter()
method,
so that all of its subclasses gain the error handling capabilities
of this visitor without having to rewrite it for the
enter()
for each sub-class.
This method allows for a SemanticException
to be
thrown in the body, while enter()
does not.
- Overrides:
enterCall
in class ErrorHandlingVisitor
n
- The root of the subtree to be traversed.
- Returns:
- The
ErrorHandlingVisitor
which should be
used to visit the children of n
.
- Throws:
SemanticException
- See Also:
NodeVisitor.enter(Node, Node)
isLocal
protected boolean isLocal(Context c,
java.lang.String name)
leaveCall
protected Node leaveCall(Node old,
Node n,
NodeVisitor v)
throws SemanticException
- Overrides:
leaveCall
in class ErrorHandlingVisitor
- Throws:
SemanticException
defaultSuperType
protected TypeNode defaultSuperType(Position pos)
- The type to be extended when translating an anonymous class that
implements an interface.
makeMissingFieldTarget
protected Receiver makeMissingFieldTarget(FieldInstance fi,
Position pos)
hashGet
public static java.lang.Object hashGet(java.util.Map map,
java.lang.Object k,
java.lang.Object v)
hashAdd
public static void hashAdd(java.util.Map map,
java.lang.Object k,
java.lang.Object v)