abc.aspectj.ast
Class DeclareParents_c

java.lang.Object
  extended by Term_c
      extended by abc.aspectj.ast.DeclareDecl_c
          extended by abc.aspectj.ast.DeclareParents_c
All Implemented Interfaces:
DeclareDecl, DeclareParents, ContainsAspectInfo

public class DeclareParents_c
extends DeclareDecl_c
implements DeclareParents, ContainsAspectInfo

declare parents : pat extends parents

Author:
Oege de Moor, Aske Simon Christensen

Nested Class Summary
 
Nested classes/interfaces inherited from interface abc.aspectj.ast.DeclareParents
DeclareParents.Kind
 
Field Summary
 
Fields inherited from interface abc.aspectj.ast.DeclareParents
EXTENDS, IMPLEMENTS
 
Constructor Summary
DeclareParents_c(Position pos, ClassnamePatternExpr pat, java.util.List parents, DeclareParents.Kind kind)
           
 
Method Summary
 void addTarget(AbcClass cl)
           
 Node disambiguate(DeclareParentsAmbiguityRemover ar)
           
 DeclareParents.Kind kind()
           
 java.util.List parents()
           
 ClassnamePatternExpr pat()
           
 void prettyPrint(CodeWriter w, PrettyPrinter tr)
           
protected  DeclareParents_c reconstruct(ClassnamePatternExpr pat, TypedList interfaces)
           
 void setKind(DeclareParents.Kind kind)
           
 Node typeCheck(TypeChecker tc)
           
 void update(GlobalAspectInfo gai, Aspect current_aspect)
          Called by the AspectInfoHarvester to tell the node to put all relevant information into the GlobalAspectInfo.
 Node visitChildren(NodeVisitor v)
           
 
Methods inherited from class abc.aspectj.ast.DeclareDecl_c
acceptCFG, enterScope, entry
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DeclareParents_c

public DeclareParents_c(Position pos,
                        ClassnamePatternExpr pat,
                        java.util.List parents,
                        DeclareParents.Kind kind)
Method Detail

reconstruct

protected DeclareParents_c reconstruct(ClassnamePatternExpr pat,
                                       TypedList interfaces)

visitChildren

public Node visitChildren(NodeVisitor v)

disambiguate

public Node disambiguate(DeclareParentsAmbiguityRemover ar)
                  throws SemanticException
Specified by:
disambiguate in interface DeclareParents
Throws:
SemanticException

typeCheck

public Node typeCheck(TypeChecker tc)
               throws SemanticException
Throws:
SemanticException

prettyPrint

public void prettyPrint(CodeWriter w,
                        PrettyPrinter tr)

pat

public ClassnamePatternExpr pat()
Specified by:
pat in interface DeclareParents

parents

public java.util.List parents()
Specified by:
parents in interface DeclareParents

kind

public DeclareParents.Kind kind()
Specified by:
kind in interface DeclareParents

addTarget

public void addTarget(AbcClass cl)
Specified by:
addTarget in interface DeclareParents

setKind

public void setKind(DeclareParents.Kind kind)
Specified by:
setKind in interface DeclareParents

update

public void update(GlobalAspectInfo gai,
                   Aspect current_aspect)
Description copied from interface: ContainsAspectInfo
Called by the AspectInfoHarvester to tell the node to put all relevant information into the GlobalAspectInfo.

Specified by:
update in interface ContainsAspectInfo
Parameters:
gai - the target of the information.
current_aspect - the aspect currently being traversed.