abc.aspectj.ast
Class AspectDecl_c
java.lang.Object
ClassDecl_c
abc.aspectj.extension.AJClassDecl_c
abc.aspectj.ast.AspectDecl_c
- All Implemented Interfaces:
- AspectDecl, MakesAspectMethods, ContainsAspectInfo
public class AspectDecl_c
- extends AJClassDecl_c
- implements AspectDecl, ContainsAspectInfo, MakesAspectMethods
A AspectDecl
is the definition of an aspect, abstract aspect,
or privileged. It may be a public or other top-level aspect, or an inner
named aspect.
- Author:
- Oege de Moor, Aske Simon Christensen
Constructor Summary |
AspectDecl_c(Position pos,
boolean is_privileged,
Flags flags,
java.lang.String name,
TypeNode superClass,
java.util.List interfaces,
PerClause per,
AspectBody body)
|
Method Summary |
AspectDecl |
addAspectMembers(NodeFactory nf,
AJTypeSystem ts)
add the aspectOf and hasAspect methods to the aspect class, but only if it is concrete |
NodeVisitor |
addMembersEnter(AddMemberVisitor am)
|
void |
aspectMethodsEnter(AspectMethods visitor)
|
Node |
aspectMethodsLeave(AspectMethods visitor,
AJNodeFactory nf,
AJTypeSystem ts)
|
NodeVisitor |
buildTypesEnter(TypeBuilder tb)
|
NodeVisitor |
disambiguateEnter(AmbiguityRemover ar)
|
Context |
enterScope(Context c)
|
Context |
enterScope(Node child,
Context c)
|
void |
prettyPrintHeader(CodeWriter w,
PrettyPrinter tr)
|
protected AspectDecl_c |
reconstruct(TypeNode superClass,
java.util.List interfaces,
PerClause per,
ClassBody body)
|
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
per
protected PerClause per
hasAspectInstance
protected MethodInstance hasAspectInstance
aspectOfInstance
protected MethodInstance aspectOfInstance
AspectDecl_c
public AspectDecl_c(Position pos,
boolean is_privileged,
Flags flags,
java.lang.String name,
TypeNode superClass,
java.util.List interfaces,
PerClause per,
AspectBody body)
addAspectMembers
public AspectDecl addAspectMembers(NodeFactory nf,
AJTypeSystem ts)
- add the aspectOf and hasAspect methods to the aspect class, but only if it is concrete
buildTypesEnter
public NodeVisitor buildTypesEnter(TypeBuilder tb)
throws SemanticException
- Throws:
SemanticException
addMembersEnter
public NodeVisitor addMembersEnter(AddMemberVisitor am)
disambiguateEnter
public NodeVisitor disambiguateEnter(AmbiguityRemover ar)
throws SemanticException
- Throws:
SemanticException
reconstruct
protected AspectDecl_c reconstruct(TypeNode superClass,
java.util.List interfaces,
PerClause per,
ClassBody body)
visitChildren
public Node visitChildren(NodeVisitor v)
enterScope
public Context enterScope(Node child,
Context c)
enterScope
public Context enterScope(Context c)
prettyPrintHeader
public void prettyPrintHeader(CodeWriter w,
PrettyPrinter tr)
typeCheck
public Node typeCheck(TypeChecker tc)
throws SemanticException
- Overrides:
typeCheck
in class AJClassDecl_c
- Throws:
SemanticException
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.
aspectMethodsEnter
public void aspectMethodsEnter(AspectMethods visitor)
- Specified by:
aspectMethodsEnter
in interface MakesAspectMethods
- Overrides:
aspectMethodsEnter
in class AJClassDecl_c
aspectMethodsLeave
public Node aspectMethodsLeave(AspectMethods visitor,
AJNodeFactory nf,
AJTypeSystem ts)
- Specified by:
aspectMethodsLeave
in interface MakesAspectMethods
- Overrides:
aspectMethodsLeave
in class AJClassDecl_c