abc.weaving.aspectinfo
Class IntertypeConstructorDecl

java.lang.Object
  extended by abc.weaving.aspectinfo.Syntax
      extended by abc.weaving.aspectinfo.InAspect
          extended by abc.weaving.aspectinfo.IntertypeConstructorDecl

public class IntertypeConstructorDecl
extends InAspect

An intertype constructor declaration. given an intertype constructor declaration of the form mods A.new(formal1, ...,formaln) { ccall(E1,E2,...,Ek); // optional call to super or this init; } the frontend transforms it into the following shape mods A.new(formal1, ..., formaln) { qualifier.ccall(e1(this,formal1,...,formaln), ..., ek(this,formal1,...,formaln)); // no longer optional body(this,formal1,...,formaln); } where e1,...,ek and body are newly generated methods in the originating aspect. The class below encodes the latter scheme, for code generation in the target class.

Author:
Aske Simon Christensen, Oege de Moor

Field Summary
static int SUPER
           
static int THIS
           
 
Constructor Summary
IntertypeConstructorDecl(AbcClass target, Aspect aspct, int mod, int origmod, boolean hasMangleParam, java.util.List formalTypes, java.util.List throwTypes, AbcClass qualifier, int kind, java.util.List arguments, MethodSig body, Position pos)
           
 
Method Summary
 java.util.List getArguments()
           
 MethodSig getBody()
           
 java.util.List getExceptions()
          Get the exceptions thrown by the method.
 java.util.List getFormalTypes()
          Get the formal types of the intertype constructor.
 int getKind()
           
 int getModifiers()
          Get the modifiers of intertype constructor
 int getOriginalModifiers()
          Get the modifiers of intertype constructor
 AbcClass getQualifier()
           
 AbcClass getTarget()
          Get the target where of the intertype decl
 boolean hasMangleParam()
          Does this constructor have an additional last parameter for mangling purposes?
 java.lang.String toString()
           
 
Methods inherited from class abc.weaving.aspectinfo.InAspect
getAspect
 
Methods inherited from class abc.weaving.aspectinfo.Syntax
getPosition
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SUPER

public static int SUPER

THIS

public static int THIS
Constructor Detail

IntertypeConstructorDecl

public IntertypeConstructorDecl(AbcClass target,
                                Aspect aspct,
                                int mod,
                                int origmod,
                                boolean hasMangleParam,
                                java.util.List formalTypes,
                                java.util.List throwTypes,
                                AbcClass qualifier,
                                int kind,
                                java.util.List arguments,
                                MethodSig body,
                                Position pos)
Method Detail

getTarget

public AbcClass getTarget()
Get the target where of the intertype decl


getModifiers

public int getModifiers()
Get the modifiers of intertype constructor


getOriginalModifiers

public int getOriginalModifiers()
Get the modifiers of intertype constructor


hasMangleParam

public boolean hasMangleParam()
Does this constructor have an additional last parameter for mangling purposes?


getFormalTypes

public java.util.List getFormalTypes()
Get the formal types of the intertype constructor.

Returns:
a list of AbcType objects.

getExceptions

public java.util.List getExceptions()
Get the exceptions thrown by the method.

Returns:
a list of soot.SootClass objects.

getQualifier

public AbcClass getQualifier()

getKind

public int getKind()

getArguments

public java.util.List getArguments()

getBody

public MethodSig getBody()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object