org.aspectj.compiler.base.ast
Class SemanticObject

java.lang.Object
  extended byorg.aspectj.compiler.base.CompilerObject
      extended byorg.aspectj.compiler.base.ast.SemanticObject
Direct Known Subclasses:
Constructor, Field, Method, PointcutSO, Type

public abstract class SemanticObject
extends org.aspectj.compiler.base.CompilerObject

Represents the platonic ideals of the declarations in the ast. One important purpose for these objects is to retain their identity across incremental recompilation. This implementation treats these objects as proxies for Decs. That isn't essential to their nature but rather a convenient way to get started.


Field Summary
protected  Dec dec
           
protected static org.aspectj.compiler.base.JavaCompiler dummyCompiler
           
 
Constructor Summary
SemanticObject(Dec dec)
           
SemanticObject(org.aspectj.compiler.base.JavaCompiler compiler)
           
 
Method Summary
 boolean checkOverride(Type inType, SemanticObject other)
           
 boolean conflictsWith(SemanticObject other)
           
 boolean dominates(SemanticObject other)
           
 java.lang.String getBytecodeId()
           
 Dec getCorrespondingDec()
           
 Type getDeclaringType()
           
 java.lang.String getDescriptor()
           
 java.lang.String getId()
           
 java.lang.String getKind()
           
 Modifiers getModifiers()
           
 java.lang.String getName()
           
 int getStackDelta()
           
 boolean isAbstract()
           
 boolean isAccessible(ASTObject fromWhere)
           
 boolean isAccessible(ASTObject fromWhere, boolean inBytecode)
           
 boolean isAlmostApplicable(Exprs params)
           
 boolean isApplicable(Exprs params)
           
 boolean isInherited(Type inType)
           
 boolean isMoreSpecificThan(SemanticObject other)
           
 boolean isStatic()
           
 void showConflictError(SemanticObject other, java.lang.String message)
           
 java.lang.String toShortString()
           
 Expr updateTargetExpr(Expr expr)
           
 
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

dec

protected Dec dec

dummyCompiler

protected static org.aspectj.compiler.base.JavaCompiler dummyCompiler
Constructor Detail

SemanticObject

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

SemanticObject

public SemanticObject(Dec dec)
Method Detail

getName

public java.lang.String getName()

getId

public java.lang.String getId()

getBytecodeId

public java.lang.String getBytecodeId()

getDeclaringType

public Type getDeclaringType()

getCorrespondingDec

public Dec getCorrespondingDec()

getKind

public java.lang.String getKind()

toShortString

public java.lang.String toShortString()

getDescriptor

public java.lang.String getDescriptor()

getStackDelta

public int getStackDelta()

getModifiers

public Modifiers getModifiers()

isAbstract

public boolean isAbstract()

isStatic

public boolean isStatic()

isInherited

public boolean isInherited(Type inType)

conflictsWith

public boolean conflictsWith(SemanticObject other)

checkOverride

public boolean checkOverride(Type inType,
                             SemanticObject other)

dominates

public boolean dominates(SemanticObject other)

isMoreSpecificThan

public boolean isMoreSpecificThan(SemanticObject other)

isApplicable

public boolean isApplicable(Exprs params)

isAlmostApplicable

public boolean isAlmostApplicable(Exprs params)

isAccessible

public boolean isAccessible(ASTObject fromWhere)

isAccessible

public boolean isAccessible(ASTObject fromWhere,
                            boolean inBytecode)

showConflictError

public void showConflictError(SemanticObject other,
                              java.lang.String message)

updateTargetExpr

public Expr updateTargetExpr(Expr expr)