|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.aspectj.compiler.base.CompilerObject
org.aspectj.compiler.base.ast.ASTObject
org.aspectj.compiler.base.ast.Stmt
org.aspectj.compiler.base.ast.Dec
org.aspectj.compiler.base.ast.TypeDec
Represents declared classes, interfaces and aspects One per declaration in the source or in the bytecodes ??? Should bytecodes produce something else ???
| Field Summary | |
protected Decs |
body
|
protected java.lang.String |
id
|
FieldDec |
joinPointFactoryDec
|
java.util.List |
joinPoints0
|
java.util.List |
joinPoints1
|
java.util.List |
joinPoints2
|
java.util.Set |
memberTypeNames
|
protected Modifiers |
modifiers
|
protected TypeDs |
superInterfaces
|
protected NameType |
type
|
| Fields inherited from class org.aspectj.compiler.base.ast.Dec |
forcePublic, owner, semanticObject |
| Fields inherited from class org.aspectj.compiler.base.ast.ASTObject |
dummySource, parent, sourceLocation |
| Constructor Summary | |
protected |
TypeDec(SourceLocation source)
|
|
TypeDec(SourceLocation location,
Modifiers _modifiers,
java.lang.String _id,
TypeDs _superInterfaces,
Decs _body)
|
| Method Summary | |
void |
addAssertionField()
|
protected void |
addConstructorDec(ConstructorDec constructorDec)
|
protected void |
addDec(Dec dec)
|
void |
addDecs(NameType toThis)
|
void |
addExtraWithinType(Type type)
|
protected void |
addFieldDec(FieldDec fieldDec)
|
protected void |
addInitializerDec(InitializerDec dec)
|
void |
addInnerTypes()
|
void |
addIntroducedDec(Dec dec)
|
void |
addMember(TypeDec memberDec)
|
void |
addMemberMethodDec(MethodDec memberDec)
|
void |
addMemberTypeDec(TypeDec memberDec)
|
protected void |
addMethodDec(MethodDec methodDec)
|
protected void |
addPointcutDec(PointcutDec pointcutDec)
|
void |
addSuperInterfaceType(Type newSuperType)
|
void |
addToBody(Dec dec)
|
void |
addToBodyAndType(Dec dec)
|
void |
addToTypeGraph()
|
void |
addToTypeGraph(ScopeWalker walker)
1. |
protected void |
addTypeDec(TypeDec typeDec)
|
int |
allocateLocalTypeIndex()
|
void |
buildSignatures()
|
void |
buildSignatures(ScopeWalker walker)
1. |
boolean |
canOverride(Dec otherDec)
|
protected void |
cgMember(org.aspectj.compiler.base.bcg.ClassfileBuilder maker)
This method takes care of generating code for Member decs. |
void |
checkSpec()
|
void |
collectInitializers(boolean collectSynthetics)
|
void |
collectInitializers(boolean isStatic,
boolean collectSynthetics)
|
void |
fixAST(org.aspectj.compiler.base.ASTFixerPass fixer)
|
void |
generateBytecode(java.io.File outputDir)
should only be called from CompilationUnit and from
ClassfileBuilder |
Field |
getAssertionsDisabledField()
This field is actually added in postFixAST |
Decs |
getBody()
|
TypeDec |
getBytecodeTypeDec()
not part of the language's semantic model, but part of the compiler's generated code model. |
ASTObject |
getChildAt(int childIndex)
|
int |
getChildCount()
|
java.lang.String |
getChildNameAt(int childIndex)
|
TypeDec |
getDeclaringTypeDec()
|
java.lang.String |
getDefaultDisplayName()
|
int |
getDepth()
|
NameType |
getEnclosingInstanceType()
|
TypeDec |
getEnclosingInstanceTypeDec()
|
protected org.aspectj.compiler.base.cst.Scope |
getEnclosingScope(boolean justTypeGraph)
|
TypeDec |
getEnclosingTypeDec()
|
java.lang.String |
getExtendedId()
Returns the name of this class minus the package name uses '$' as a separator for inners java.util.Map.Entry goes to Map$Entry |
java.util.Set |
getExtraWithinTypes()
|
java.lang.String |
getFullName()
|
java.lang.String |
getId()
|
java.util.Set |
getInitializerExecutionJoinPoints()
|
Modifiers |
getModifiers()
|
NameType |
getNameType()
|
Type |
getOutermostBytecodeType()
|
Type |
getOutermostLexicalType()
|
Type |
getOutermostType()
|
TypeDec |
getOutermostTypeDec()
|
java.io.File |
getPackageDir(java.io.File outputdir)
Used to generate .class files in TypeDec.generateBytecode method Used to generate .java files in CodeGenerator.? |
java.lang.String |
getPackageName()
|
java.lang.String |
getPrettyString()
|
InitializerDec |
getSingleInitializerDec(boolean isStatic)
|
ConstructorDec |
getSoleConstructorDec()
|
java.lang.String |
getSourceExtendedId()
Returns the name of this class minus the package name uses '.' as a separator for inners java.util.Map.Entry goes to Map.Entry |
Type |
getSuperClassType()
|
TypeDs |
getSuperInterfaces()
|
java.util.Collection |
getSuperInterfaceTypes()
|
Type |
getType()
|
boolean |
hasGlobalName()
Does this typeDec not have an accessible typeName from the rest of the universe? That is, is it a local or anonymous class, or is one of its declaring typedecs local or anonymous? |
abstract boolean |
isAnonymous()
|
boolean |
isConcrete()
|
boolean |
isInner()
Only classes can be inners, so this is overridden by ClassDec |
boolean |
isInnerType()
|
boolean |
isInnerTypeOf(TypeDec parentType)
|
boolean |
isLocal()
|
boolean |
isLocallyDefined()
Is this typeDec in local context? A local or anonymous class? |
boolean |
isPackageMember()
|
boolean |
isRoot()
|
SemanticObject |
makeCorrespondingSemanticObject()
|
protected java.util.Collection |
makeInterfaceTypesFromTypeDs(TypeDs typeDs)
Assume that this method is called at least once per type to check some rules about interfaces |
ASTObject |
postCopy(CopyWalker walker,
ASTObject oldObject)
We now explicitly can't copy local types from one type dec to another |
void |
postIntroductionFinish()
|
ASTObject |
postLift(org.aspectj.compiler.base.LocalClassPass.LiftWalker walker)
|
ASTObject |
postMove(MovingWalker walker)
|
ASTObject |
postThreading(org.aspectj.compiler.base.LocalClassPass.ThreadingWalker walker)
|
void |
preCopy(CopyWalker walker,
ASTObject oldObject)
|
void |
preLift(org.aspectj.compiler.base.LocalClassPass.LiftWalker walker)
|
void |
preMove(MovingWalker walker)
|
void |
preThreading(org.aspectj.compiler.base.LocalClassPass.ThreadingWalker walker)
|
void |
setBody(Decs _body)
|
void |
setChildAt(int childIndex,
ASTObject child)
|
void |
setEnclosingTypeDec(TypeDec dec)
|
void |
setId(java.lang.String _id)
|
void |
setInnerDiscoveries(boolean a,
boolean b,
boolean c)
should only be called from ASTConnection (or here, I suppose) |
void |
setIsInner(boolean b)
|
void |
setLocal()
|
void |
setModifiers(Modifiers _modifiers)
|
void |
setSoleConstructorDec(ConstructorDec d)
|
void |
setSuperInterfaces(TypeDs _superInterfaces)
|
void |
setType(NameType type)
|
java.lang.String |
toShortString()
|
java.lang.String |
toString()
|
void |
walkAnalysis(org.aspectj.compiler.base.LocalClassPass.AnalysisWalker walker)
|
protected void |
walkBody(ScopeWalker walker)
|
protected void |
walkExtendsAndImplements(ScopeWalker walker)
|
void |
walkFlow(org.aspectj.compiler.base.FlowCheckerPass ww)
|
void |
walkForwardReference(org.aspectj.compiler.base.ForwardReferenceChecker w)
|
void |
walkInnerInfo(org.aspectj.compiler.base.InnerInfoPass w)
|
ASTObject |
walkMemberMunger(org.aspectj.compiler.base.MemberClassMunger w)
|
void |
walkScope(ScopeWalker walker)
This is the simplest scope pass of them all. |
| Methods inherited from class org.aspectj.compiler.base.ast.Stmt |
cgStmt, cgTop, completesNormally, isBreakable, isContinuable, isEmpty, mustBeLive, registerLocation, requireBlockStmt, setCompletesNormally |
| Methods inherited from class org.aspectj.compiler.base.CompilerObject |
getCompiler, getOptions, getTypeManager, getWorld |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
public java.util.Set memberTypeNames
protected NameType type
public FieldDec joinPointFactoryDec
public java.util.List joinPoints0
public java.util.List joinPoints1
public java.util.List joinPoints2
protected Modifiers modifiers
protected java.lang.String id
protected TypeDs superInterfaces
protected Decs body
| Constructor Detail |
public TypeDec(SourceLocation location,
Modifiers _modifiers,
java.lang.String _id,
TypeDs _superInterfaces,
Decs _body)
protected TypeDec(SourceLocation source)
| Method Detail |
public void walkInnerInfo(org.aspectj.compiler.base.InnerInfoPass w)
walkInnerInfo in class ASTObjectpublic void checkSpec()
checkSpec in class ASTObjectpublic ASTObject walkMemberMunger(org.aspectj.compiler.base.MemberClassMunger w)
walkMemberMunger in class ASTObjectpublic void walkFlow(org.aspectj.compiler.base.FlowCheckerPass ww)
walkFlow in class ASTObjectpublic int getDepth()
public void preMove(MovingWalker walker)
preMove in class Dec
public void preCopy(CopyWalker walker,
ASTObject oldObject)
preCopy in class Dec
public ASTObject postCopy(CopyWalker walker,
ASTObject oldObject)
postCopy in class Decpublic ASTObject postMove(MovingWalker walker)
postMove in class ASTObjectpublic Type getType()
public void setType(NameType type)
public NameType getNameType()
public TypeDec getBytecodeTypeDec()
ASTObject
getBytecodeTypeDec in class ASTObjectpublic SemanticObject makeCorrespondingSemanticObject()
makeCorrespondingSemanticObject in class Decpublic java.util.Set getExtraWithinTypes()
public void addExtraWithinType(Type type)
public Type getSuperClassType()
public java.util.Collection getSuperInterfaceTypes()
public void addSuperInterfaceType(Type newSuperType)
public void setEnclosingTypeDec(TypeDec dec)
public TypeDec getEnclosingTypeDec()
public TypeDec getDeclaringTypeDec()
public TypeDec getOutermostTypeDec()
public Type getOutermostType()
public boolean isInnerType()
public boolean isInnerTypeOf(TypeDec parentType)
public boolean hasGlobalName()
public boolean isLocallyDefined()
public abstract boolean isAnonymous()
public boolean canOverride(Dec otherDec)
public boolean isRoot()
public boolean isConcrete()
public int allocateLocalTypeIndex()
public java.lang.String getExtendedId()
public java.lang.String getSourceExtendedId()
protected java.util.Collection makeInterfaceTypesFromTypeDs(TypeDs typeDs)
protected void addPointcutDec(PointcutDec pointcutDec)
protected void addFieldDec(FieldDec fieldDec)
protected void addMethodDec(MethodDec methodDec)
protected void addConstructorDec(ConstructorDec constructorDec)
protected void addTypeDec(TypeDec typeDec)
public void addMemberTypeDec(TypeDec memberDec)
public void addMember(TypeDec memberDec)
public void addMemberMethodDec(MethodDec memberDec)
public void addIntroducedDec(Dec dec)
protected void addInitializerDec(InitializerDec dec)
protected void addDec(Dec dec)
public final java.lang.String getPackageName()
public void setSoleConstructorDec(ConstructorDec d)
public ConstructorDec getSoleConstructorDec()
public void addInnerTypes()
public void addDecs(NameType toThis)
public void postIntroductionFinish()
public void addToBody(Dec dec)
public void addToBodyAndType(Dec dec)
public java.lang.String getPrettyString()
public java.lang.String toString()
toString in class ASTObjectpublic java.lang.String toShortString()
toShortString in class Decpublic void fixAST(org.aspectj.compiler.base.ASTFixerPass fixer)
fixAST in class ASTObjectprotected void walkExtendsAndImplements(ScopeWalker walker)
protected void walkBody(ScopeWalker walker)
protected org.aspectj.compiler.base.cst.Scope getEnclosingScope(boolean justTypeGraph)
public void addToTypeGraph()
public void buildSignatures()
public void addToTypeGraph(ScopeWalker walker)
public void buildSignatures(ScopeWalker walker)
public void walkScope(ScopeWalker walker)
walkScope in class ASTObjectpublic java.lang.String getFullName()
public void setInnerDiscoveries(boolean a,
boolean b,
boolean c)
public void setIsInner(boolean b)
public Type getOutermostBytecodeType()
getOutermostBytecodeType in class ASTObjectpublic Type getOutermostLexicalType()
getOutermostLexicalType in class Decpublic boolean isInner()
public void setLocal()
public boolean isLocal()
public boolean isPackageMember()
public NameType getEnclosingInstanceType()
public TypeDec getEnclosingInstanceTypeDec()
public java.util.Set getInitializerExecutionJoinPoints()
public void walkForwardReference(org.aspectj.compiler.base.ForwardReferenceChecker w)
walkForwardReference in class Decpublic void walkAnalysis(org.aspectj.compiler.base.LocalClassPass.AnalysisWalker walker)
walkAnalysis in class ASTObjectpublic void preLift(org.aspectj.compiler.base.LocalClassPass.LiftWalker walker)
preLift in class ASTObjectpublic ASTObject postLift(org.aspectj.compiler.base.LocalClassPass.LiftWalker walker)
postLift in class ASTObjectpublic void collectInitializers(boolean collectSynthetics)
public Field getAssertionsDisabledField()
public void addAssertionField()
public void collectInitializers(boolean isStatic,
boolean collectSynthetics)
public InitializerDec getSingleInitializerDec(boolean isStatic)
public void preThreading(org.aspectj.compiler.base.LocalClassPass.ThreadingWalker walker)
preThreading in class ASTObjectpublic ASTObject postThreading(org.aspectj.compiler.base.LocalClassPass.ThreadingWalker walker)
postThreading in class ASTObjectprotected void cgMember(org.aspectj.compiler.base.bcg.ClassfileBuilder maker)
DecFieldDec and CodeDec.
Moreover, FieldDecs should not have initializers
unless they're constants. This method throws an error if it
is ever invoked: FieldDec and CodeDec override it.
cgMember in class Decpublic java.io.File getPackageDir(java.io.File outputdir)
public final void generateBytecode(java.io.File outputDir)
throws java.io.IOException
CompilationUnit and from
ClassfileBuilder
java.io.IOExceptionpublic Modifiers getModifiers()
getModifiers in class Decpublic void setModifiers(Modifiers _modifiers)
public java.lang.String getId()
getId in class Decpublic void setId(java.lang.String _id)
setId in class Decpublic TypeDs getSuperInterfaces()
public void setSuperInterfaces(TypeDs _superInterfaces)
public Decs getBody()
public void setBody(Decs _body)
public ASTObject getChildAt(int childIndex)
getChildAt in class ASTObjectpublic java.lang.String getChildNameAt(int childIndex)
getChildNameAt in class ASTObject
public void setChildAt(int childIndex,
ASTObject child)
setChildAt in class ASTObjectpublic int getChildCount()
getChildCount in class ASTObjectpublic java.lang.String getDefaultDisplayName()
getDefaultDisplayName in class Dec
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||