org.aspectj.compiler.base.ast
Class MovingWalker

java.lang.Object
  extended byorg.aspectj.compiler.base.CompilerObject
      extended byorg.aspectj.compiler.base.ast.Walker
          extended byorg.aspectj.compiler.base.ast.MovingWalker
Direct Known Subclasses:
CopyWalker

public class MovingWalker
extends Walker


Field Summary
 boolean isStatic
           
protected  java.util.Stack lexicalTypes
           
protected  java.util.Map remapNodes
           
 Type toType
           
 
Constructor Summary
MovingWalker(org.aspectj.compiler.base.JavaCompiler compiler)
           
MovingWalker(org.aspectj.compiler.base.JavaCompiler compiler, Type fromType, Type toType)
           
 
Method Summary
 void addMapping(java.lang.Object oldObject, java.lang.Object newObject)
           
 void addMappings(java.util.Map map)
           
 Type getLexicalType()
           
 Type getTopLexicalType()
           
 Type getToType()
           
protected  Expr handleFreeVar(VarExpr var)
          returns what a free varExpr should remap to.
 boolean hasLexicalType()
           
 boolean hasToType()
           
 boolean inTopLexicalType()
           
protected  Expr makeThisExpr()
           
 void moveLink(SOLink link)
           
 Expr moveLinkExpr(SOLink link)
           
 Expr moveThisExpr(ThisExpr thisExpr, Type thisType)
           
 Type moveType(Type type)
           
 Expr moveVarExpr(VarExpr var)
          returns what a varExpr should remap to.
 void popLexicalType()
           
 ASTObject process(ASTObject object)
           
 void pushLexicalType(Type t)
           
 
Methods inherited from class org.aspectj.compiler.base.ast.Walker
postProcess, preProcess
 
Methods inherited from class org.aspectj.compiler.base.CompilerObject
getAST, getCompiler, getOptions, getTypeManager, getWorld
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

remapNodes

protected java.util.Map remapNodes

lexicalTypes

protected java.util.Stack lexicalTypes

toType

public Type toType

isStatic

public boolean isStatic
Constructor Detail

MovingWalker

public MovingWalker(org.aspectj.compiler.base.JavaCompiler compiler)

MovingWalker

public MovingWalker(org.aspectj.compiler.base.JavaCompiler compiler,
                    Type fromType,
                    Type toType)
Method Detail

addMappings

public void addMappings(java.util.Map map)

hasToType

public boolean hasToType()

getToType

public Type getToType()

addMapping

public void addMapping(java.lang.Object oldObject,
                       java.lang.Object newObject)

inTopLexicalType

public boolean inTopLexicalType()

hasLexicalType

public boolean hasLexicalType()

getLexicalType

public Type getLexicalType()

getTopLexicalType

public Type getTopLexicalType()

pushLexicalType

public void pushLexicalType(Type t)

popLexicalType

public void popLexicalType()

moveThisExpr

public Expr moveThisExpr(ThisExpr thisExpr,
                         Type thisType)

moveVarExpr

public Expr moveVarExpr(VarExpr var)
returns what a varExpr should remap to.


handleFreeVar

protected Expr handleFreeVar(VarExpr var)
returns what a free varExpr should remap to.


makeThisExpr

protected Expr makeThisExpr()

moveType

public Type moveType(Type type)

moveLink

public void moveLink(SOLink link)

moveLinkExpr

public Expr moveLinkExpr(SOLink link)

process

public ASTObject process(ASTObject object)
Overrides:
process in class Walker