org.aspectj.compiler.base.ast
Class ArrayType

java.lang.Object
  extended byorg.aspectj.compiler.base.CompilerObject
      extended byorg.aspectj.compiler.base.ast.SemanticObject
          extended byorg.aspectj.compiler.base.ast.Type
              extended byorg.aspectj.compiler.base.ast.RefType
                  extended byorg.aspectj.compiler.base.ast.ArrayType

public class ArrayType
extends RefType


Field Summary
 
Fields inherited from class org.aspectj.compiler.base.ast.Type
BOOLEAN, BYTE, CHAR, directSubTypes, directSuperTypes, DOUBLE, FLOAT, INT, LONG, REF, SHORT, VOID
 
Fields inherited from class org.aspectj.compiler.base.ast.SemanticObject
dec, dummyCompiler
 
Constructor Summary
ArrayType(org.aspectj.compiler.base.JavaCompiler compiler, Type componentType)
           
 
Method Summary
 SemanticObject findMatchingSemanticObject(SemanticObject o)
           
 Expr fromObject(Expr expr)
           
 int getArrayDimCount()
           
 Type getBaseComponentType()
           
 Expr getClassExpr()
           
 Type getComponentType()
           
 java.lang.String getDescriptor()
          The descriptor for this type, as used by classfiles.
 java.lang.String getExternalName()
          What is the JVM external name for this type? Strangely enough, this is the same as getString() for primitive and name-types, but is the same as getDescriptor() with '.'s instead of '/'s for array types.
 Field getField(java.lang.String id, ASTObject fromWhere, boolean showError)
           
 java.lang.String getInternalName()
          The internal name is the name internal to the VM.
 Method getMethod(java.lang.String id, ASTObject fromWhere, Exprs params, boolean showError)
           
 Expr getNullExpr()
           
 Type getRefType()
           
 java.lang.String getString()
           
 boolean isAssignableFrom(Type _other)
           
 boolean isCloneable()
           
 boolean isCoercableTo(Type _other)
           
 boolean isEquivalent(Type _other)
           
 boolean isSubtypeOf(Type other)
           
 Expr makeObject(Expr expr)
           
 java.lang.String toShortString()
           
 void unparse(org.aspectj.compiler.base.CodeWriter writer)
           
 
Methods inherited from class org.aspectj.compiler.base.ast.RefType
emitLoad, emitReturn, emitStore
 
Methods inherited from class org.aspectj.compiler.base.ast.Type
addDirectSuperType, addSubTypes, buildTypeGraph, dominates, ensureBuiltTypeGraph, ensureFinishedSignature, filterConcreteTypes, filterSubTypes, filterTopTypes, findMatchingDec, finish, finishTypeIntroductions, getAllSuperInterfaces, getArrayType, getConstructor, getDeclaringType, getDirectSubTypes, getDirectSuperTypes, getExtendedId, getId, getInheritedMembers, getInheritedMethods, getInnerType, getNamePieces, getOutermostBytecodeType, getOutermostLexicalType, getOutermostType, getPackageCookieType, getPackageName, getPointcut, getPrettyString, getPrivateCookieType, getSlotCount, getSourceExtendedId, getSubTypes, getTypeDec, getTypeIndex, hasMatchingType, hasMethodNamed, intersect, isAbstract, isAccessible, isAnonymous, isAnyType, isAspect, isBoolean, isClass, isConcrete, isEffectivelyStatic, isInnerType, isIntegral, isInterface, isMethodConvertableTo, isMissing, isNumeric, isObject, isPrimitive, isReferenceType, isStrictSubtypeOf, isString, isUncheckedThrowable, isVoid, makeTypeD, makeTypeSet, showNotFoundError, validateTypeGraph
 
Methods inherited from class org.aspectj.compiler.base.ast.SemanticObject
checkOverride, conflictsWith, dominates, getBytecodeId, getCorrespondingDec, getKind, getModifiers, getName, getStackDelta, isAccessible, isAlmostApplicable, isApplicable, isInherited, isMoreSpecificThan, isStatic, showConflictError, updateTargetExpr
 
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
 

Constructor Detail

ArrayType

public ArrayType(org.aspectj.compiler.base.JavaCompiler compiler,
                 Type componentType)
Method Detail

getComponentType

public Type getComponentType()

getArrayDimCount

public int getArrayDimCount()
Overrides:
getArrayDimCount in class Type

getBaseComponentType

public Type getBaseComponentType()
Overrides:
getBaseComponentType in class Type

getClassExpr

public Expr getClassExpr()
Overrides:
getClassExpr in class Type

fromObject

public Expr fromObject(Expr expr)
Overrides:
fromObject in class Type

makeObject

public Expr makeObject(Expr expr)
Overrides:
makeObject in class Type

getNullExpr

public Expr getNullExpr()
Overrides:
getNullExpr in class Type

getRefType

public Type getRefType()
Overrides:
getRefType in class Type

getField

public Field getField(java.lang.String id,
                      ASTObject fromWhere,
                      boolean showError)
Overrides:
getField in class Type

getMethod

public Method getMethod(java.lang.String id,
                        ASTObject fromWhere,
                        Exprs params,
                        boolean showError)
Overrides:
getMethod in class Type

findMatchingSemanticObject

public SemanticObject findMatchingSemanticObject(SemanticObject o)
Overrides:
findMatchingSemanticObject in class Type

getString

public java.lang.String getString()
Overrides:
getString in class Type

toShortString

public java.lang.String toShortString()
Specified by:
toShortString in class Type

unparse

public void unparse(org.aspectj.compiler.base.CodeWriter writer)

isEquivalent

public boolean isEquivalent(Type _other)
Overrides:
isEquivalent in class Type

isSubtypeOf

public boolean isSubtypeOf(Type other)
Overrides:
isSubtypeOf in class Type

isAssignableFrom

public boolean isAssignableFrom(Type _other)
Overrides:
isAssignableFrom in class Type

isCoercableTo

public boolean isCoercableTo(Type _other)
Specified by:
isCoercableTo in class Type

isCloneable

public boolean isCloneable()
Overrides:
isCloneable in class Type

getExternalName

public java.lang.String getExternalName()
Description copied from class: Type
What is the JVM external name for this type? Strangely enough, this is the same as getString() for primitive and name-types, but is the same as getDescriptor() with '.'s instead of '/'s for array types. Extremely wacky, and currently only used in desugaring ClassExpr expressions.

Overrides:
getExternalName in class Type

getInternalName

public java.lang.String getInternalName()
Description copied from class: Type
The internal name is the name internal to the VM. Notably, this uses / rather than . as a package separator. This is only really defined on NameType and ArrayType.

Overrides:
getInternalName in class Type

getDescriptor

public java.lang.String getDescriptor()
Description copied from class: Type
The descriptor for this type, as used by classfiles. Note that FieldDec and MethodDec objects also have descriptors, which are built up out of type descriptors.

Specified by:
getDescriptor in class Type