org.aspectj.lang.reflect

## Interface AjType<T>

All Superinterfaces:
  AnnotatedElement, Type

All Known Implementing Classes:
  AjTypeImpl

    public interface AjType<T>
    extends Type, AnnotatedElement

The runtime representation of a type (Aspect, Class, Interface, Annotation, Enum, or Array) in an AspectJ program.

### Method Summary

All Methods Instance Methods Abstract Methods
`Advice[]` `getAdvice(AdviceKind... ofTypes)`
`Advice` `getAdvice(String name)` For an annotation style advice member, this is the name of the annotated method.
`AjType<?>[]` `getAjTypes()`
`Constructor` `getConstructor(AjType<?>... parameterTypes)`
`Constructor[]` `getConstructors()`
`DeclareAnnotation[]` `getDeclareAnnotations()`
`Advice[]` `getDeclaredAdvice(AdviceKind... ofTypes)`
`Advice` `getDeclaredAdvice(String name)` For an annotation style advice member, this is the name of the annotated method.
`AjType<?>[]` `getDeclaredAjTypes()`
`Constructor` `getDeclaredConstructor(AjType<?>... parameterTypes)`
`Constructor[]` `getDeclaredConstructors()`
`Field` `getDeclaredField(String name)`
`Field[]` `getDeclaredFields()`
`InterTypeConstructorDeclaration` `getDeclaredITDConstructor(AjType<?> target, AjType<?>... parameterTypes)`
`InterTypeConstructorDeclaration[]` `getDeclaredITDConstructors()`
`InterTypeFieldDeclaration` `getDeclaredITDField(String name, AjType<?> target)`
`InterTypeFieldDeclaration[]` `getDeclaredITDFields()`
`InterTypeMethodDeclaration` `getDeclaredITDMethod(String name, AjType<?> target, AjType<?>... parameterTypes)`
`InterTypeMethodDeclaration[]` `getDeclaredITDMethods()`
`Method` `getDeclaredMethod(String name, AjType<?>... parameterTypes)`
`Method[]` `getDeclaredMethods()`
`Pointcut` `getDeclaredPointcut(String name)`
`Pointcut[]` `getDeclaredPointcuts()`
`DeclareErrorOrWarning[]` `getDeclareErrorOrWarnings()`
`DeclareParents[]` `getDeclareParents()`
`DeclarePrecedence[]` `getDeclarePrecedence()`
`DeclareSoft[]` `getDeclareSofts()`
`AjType<?>` `getDeclaringType()`
`Constructor` `getEnclosingConstructor()`
`Method` `getEnclosingMethod()`
`AjType<?>` `getEnclosingType()`
`T[]` `getEnumConstants()`
`Field` `getField(String name)`
`Field[]` `getFields()`
`Type` `getGenericSupertype()`
`AjType<?>[]` `getInterfaces()`
`InterTypeConstructorDeclaration` `getITDConstructor(AjType<?> target, AjType<?>... parameterTypes)`
`InterTypeConstructorDeclaration[]` `getITDConstructors()`
`InterTypeFieldDeclaration` `getITDField(String name, AjType<?> target)`
`InterTypeFieldDeclaration[]` `getITDFields()`
`InterTypeMethodDeclaration` `getITDMethod(String name, AjType<?> target, AjType<?>... parameterTypes)`
`InterTypeMethodDeclaration[]` `getITDMethods()`
`Class<T>` `getJavaClass()`
`Method` `getMethod(String name, AjType<?>... parameterTypes)`
`Method[]` `getMethods()`
`int` `getModifiers()`
`String` `getName()`
`Package` `getPackage()`
`PerClause` `getPerClause()`
`Pointcut` `getPointcut(String name)`
`Pointcut[]` `getPointcuts()`
`AjType<?>` `getSupertype()`
`TypeVariable<Class<T>>[]` `getTypeParameters()`
`boolean` `isArray()`
`boolean` `isAspect()`
`boolean` `isEnum()`
`boolean` `isInstance(Object o)`
`boolean` `isInterface()`
`boolean` `isLocalClass()`
`boolean` `isMemberAspect()`
`boolean` `isMemberClass()`
`boolean` `isPrimitive()`
`boolean` `isPrivileged()`

### Methods inherited from interface java.lang.reflect.Type

`getTypeName`

### Methods inherited from interface java.lang.reflect.AnnotatedElement

`getAnnotation, getAnnotations, getAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotations, getDeclaredAnnotationsByType, isAnnotationPresent`

### Method Detail

#### getName

    String getName()

Returns:
  the name of this type, in the same format as returned by Class.getName()

#### getPackage

    Package getPackage()

Returns:
  the package in which this type is declared

#### getInterfaces

    AjType<?>[] getInterfaces()

Returns:
  the interfaces implemented by this type

#### getModifiers

    int getModifiers()

Returns:
  the modifiers declared for this type. The return value can be interpreted using java.lang.reflect.Modifier

#### getJavaClass

    Class<T> getJavaClass()

Returns:
  the java.lang.Class that corresponds to this AjType

#### getSupertype

    AjType<?> getSupertype()

Returns:
  the supertype of this type. If this type represents Object or a primitive type then null is returned.

#### getGenericSupertype

    Type getGenericSupertype()

Returns:
  the generic supertype of this type, as defined by Class.getGenericSupertype

#### getEnclosingMethod

    Method getEnclosingMethod()

Returns:
  the enclosing Method if this type represents a local or anonymous type declared within a method

#### getEnclosingConstructor

    Constructor getEnclosingConstructor()

Returns:
  the enclosing Method if this type represents a local or anonymous type declared within a constructor

#### getEnclosingType

    AjType<?> getEnclosingType()

Returns:
  the immediately enclosing type of this type.

#### getDeclaringType

    AjType<?> getDeclaringType()

Returns:
  the AjType representing the typei n which it was declared (if this type is a member of another type)

#### getPerClause

    PerClause getPerClause()

Returns:
  the per-clause if this is an aspect, otherwise null

#### getAjTypes

    AjType<?>[] getAjTypes()

Returns:
  an array containing all the public types that are members of this type

#### getDeclaredAjTypes

    AjType<?>[] getDeclaredAjTypes()

Returns:
  an array containing all the types declared by this type

#### getConstructor

    Constructor getConstructor(AjType<?>... parameterTypes)
                        throws NoSuchMethodException

Parameters:
  `parameterTypes` - the types of the constructor parameters
Returns:
  the constructor object for the specified public constructor of this type
Throws:
  `NoSuchMethodException` - if constructor not found

#### getConstructors

    Constructor[] getConstructors()

Returns:
  all of the public constructors of this type

#### getDeclaredConstructor

    Constructor getDeclaredConstructor(AjType<?>... parameterTypes)
                                throws NoSuchMethodException

Parameters:
  `parameterTypes` - the types of the constructor parameters
Returns:
  the constructor object for the specified constructor of this type
Throws:
  `NoSuchMethodException` - if constructor not found

#### getDeclaredConstructors

    Constructor[] getDeclaredConstructors()

Returns:
  all the constructors declared in this type

#### getDeclaredField

    Field getDeclaredField(String name)
                    throws NoSuchFieldException

Parameters:
  `name` - the field name
Returns:
  the declared field
Throws:
  `NoSuchFieldException` - if no field of that name is found

#### getDeclaredFields

    Field[] getDeclaredFields()

Returns:
  all the fields declared in this type

#### getField

    Field getField(String name)
            throws NoSuchFieldException

Parameters:
  `name` - the field name
Returns:
  the public field with the given name
Throws:
  `NoSuchFieldException` - if field not found

#### getFields

    Field[] getFields()

Returns:
  the public fields declared by this type

#### getDeclaredMethod

    Method getDeclaredMethod(String name,
                             AjType<?>... parameterTypes)
                      throws NoSuchMethodException

Parameters:
  `name` - the method name
  `parameterTypes` - the types of the method parameters
Returns:
  the method object for the specified method declared in this type
Throws:
  `NoSuchMethodException` - if the method cannot be found

#### getMethod

    Method getMethod(String name,
                     AjType<?>... parameterTypes)
              throws NoSuchMethodException

Parameters:
  `name` - the method name
  `parameterTypes` - the types of the method parameters
Returns:
  the method object for the specified public method declared in this type
Throws:
  `NoSuchMethodException` - if the method cannot be found

#### getDeclaredMethods

    Method[] getDeclaredMethods()

Returns:
  all the methods declared by this type

#### getMethods

    Method[] getMethods()

Returns:
  all the public methods of this type

#### getDeclaredPointcut

    Pointcut getDeclaredPointcut(String name)
                          throws NoSuchPointcutException

Parameters:
  `name` - the pointcut name
Returns:
  the pointcut object representing the specified pointcut declared by this type
Throws:
  `NoSuchPointcutException` - if no pointcut of that name can be found

#### getPointcut

    Pointcut getPointcut(String name)
                  throws NoSuchPointcutException

Parameters:
  `name` - the pointcut name
Returns:
  the pointcut object representing the specified public pointcut
Throws:
  `NoSuchPointcutException` - if no pointcut of that name can be found

#### getDeclaredPointcuts

    Pointcut[] getDeclaredPointcuts()

Returns:
  all of the pointcuts declared by this type

#### getPointcuts

    Pointcut[] getPointcuts()

Returns:
  all of the public pointcuts of this type

#### getDeclaredAdvice

    Advice[] getDeclaredAdvice(AdviceKind... ofTypes)

Parameters:
  `ofTypes` - the `AdviceKind`s of interest
Returns:
  all of the advice declared by this type, of an advice kind contained in the parameter list.

#### getAdvice

    Advice[] getAdvice(AdviceKind... ofTypes)

Parameters:
  `ofTypes` - the `AdviceKind`s of interest
Returns:
  all of the advice for this type, of an advice kind contained in the parameter list.

#### getAdvice

    Advice getAdvice(String name)
              throws NoSuchAdviceException

For an annotation style advice member, this is the name of the annotated method. For a code-style advice declaration, this is the name given in the @AdviceName annotation if present.

Parameters:
  `name` - the advice name
Returns:
  the advice with the given name.
Throws:
  `NoSuchAdviceException` - if no advice can be found with that name

#### getDeclaredAdvice

    Advice getDeclaredAdvice(String name)
                      throws NoSuchAdviceException

For an annotation style advice member, this is the name of the annotated method. For a code-style advice declaration, this is the name given in the @AdviceName annotation if present.

Parameters:
  `name` - the advice name
Returns:
  the advice declared in this type with the given name.
Throws:
  `NoSuchAdviceException` - if no advice can be found with that name

#### getDeclaredITDMethod

    InterTypeMethodDeclaration getDeclaredITDMethod(String name,
                                                    AjType<?> target,
                                                    AjType<?>... parameterTypes)
                                             throws NoSuchMethodException

Parameters:
  `name` - the method name
  `target` - the target of the inter-type declaration
  `parameterTypes` - the types of the inter-type method declaration
Returns:
  the inter-type method declared by this type matching the given specification
Throws:
  `NoSuchMethodException` - if the inter-type declaration cannot be found

#### getDeclaredITDMethods

    InterTypeMethodDeclaration[] getDeclaredITDMethods()

Returns:
  all of the inter-type methods declared by this type

#### getITDMethod

    InterTypeMethodDeclaration getITDMethod(String name,
                                            AjType<?> target,
                                            AjType<?>... parameterTypes)
                                     throws NoSuchMethodException

Parameters:
  `name` - the method name
  `target` - the target of the inter-type declaration
  `parameterTypes` - the types of the inter-type method declaration
Returns:
  the public inter-type method of this type matching the given specification
Throws:
  `NoSuchMethodException` - if the inter-type declaration cannot be found

#### getITDMethods

    InterTypeMethodDeclaration[] getITDMethods()

Returns:
  all of the public inter-type declared methods of this type

#### getDeclaredITDConstructor

    InterTypeConstructorDeclaration getDeclaredITDConstructor(AjType<?> target,
                                                              AjType<?>... parameterTypes)
                                                       throws NoSuchMethodException

Parameters:
  `target` - the target of the inter-type constructor of interest
  `parameterTypes` - the types of the parameter of the inter-type constructor of interest
Returns:
  the inter-type constructor declared by this type matching the given specification
Throws:
  `NoSuchMethodException` - if the inter-type declaration cannot be found

#### getDeclaredITDConstructors

    InterTypeConstructorDeclaration[] getDeclaredITDConstructors()

Returns:
  all of the inter-type constructors declared by this type

#### getITDConstructor

    InterTypeConstructorDeclaration getITDConstructor(AjType<?> target,
                                                      AjType<?>... parameterTypes)
                                               throws NoSuchMethodException

Parameters:
  `target` - the target of the inter-type constructor of interest
  `parameterTypes` - the types of the parameter of the inter-type constructor of interest
Returns:
  the public inter-type constructor matching the given specification
Throws:
  `NoSuchMethodException` - if the inter-type declaration cannot be found

#### getITDConstructors

    InterTypeConstructorDeclaration[] getITDConstructors()

Returns:
  all of the public inter-type constructors of this type

#### getDeclaredITDField

    InterTypeFieldDeclaration getDeclaredITDField(String name,
                                                  AjType<?> target)
                                           throws NoSuchFieldException

Parameters:
  `name` - the field name
  `target` - the target type for the inter-type declaration
Returns:
  the inter-type field declared in this type with the given specification
Throws:
  `NoSuchFieldException` - if the inter-type declaration cannot be found

#### getDeclaredITDFields

    InterTypeFieldDeclaration[] getDeclaredITDFields()

Returns:
  all of the inter-type fields declared in this type

#### getITDField

    InterTypeFieldDeclaration getITDField(String name,
                                          AjType<?> target)
                                   throws NoSuchFieldException

Parameters:
  `name` - the field name
  `target` - the target type for the inter-type declaration
Returns:
  the public inter-type field matching the given specification
Throws:
  `NoSuchFieldException` - if the inter-type declaration cannot be found

#### getITDFields

    InterTypeFieldDeclaration[] getITDFields()

Returns:
  all of the public inter-type fields for this type

#### getDeclareErrorOrWarnings

    DeclareErrorOrWarning[] getDeclareErrorOrWarnings()

Returns:
  all of the declare error and declare warning members of this type, including declare error/warning members inherited from super-types

#### getDeclareParents

    DeclareParents[] getDeclareParents()

Returns:
  all of the declare parents members of this type, including declare parent members inherited from super-types

#### getDeclareSofts

    DeclareSoft[] getDeclareSofts()

Returns:
  all of the declare soft members of this type, including declare soft members inherited from super-types

#### getDeclareAnnotations

    DeclareAnnotation[] getDeclareAnnotations()

Returns:
  all of the declare annotation members of this type, including declare annotation members inherited from super-types

#### getDeclarePrecedence

    DeclarePrecedence[] getDeclarePrecedence()

Returns:
  all of the declare precedence members of this type, including declare precedence members inherited from super-types

#### getEnumConstants

    T[] getEnumConstants()

Returns:
  the elements of this enum class, or null if this type does not represent an enum type.

#### getTypeParameters

    TypeVariable<Class<T>>[] getTypeParameters()

Returns:
  an array of TypeVariable objects that represent the type variables declared by this type (if any)

#### isEnum

    boolean isEnum()

Returns:
  true if this is an enum type

#### isInstance

    boolean isInstance(Object o)

Parameters:
  `o` - the object to check for assignment compatibility
Returns:
  true if the given object is assignment-compatible with an object of the type represented by this AjType

#### isInterface

    boolean isInterface()

Returns:
  true if this is an interface type

#### isLocalClass

    boolean isLocalClass()

Returns:
  true if and only if the underlying type is a local class

#### isMemberClass

    boolean isMemberClass()

Returns:
  true if and only if the underlying type is a member class

#### isArray

    boolean isArray()

Returns:
  true if this is an array type

#### isPrimitive

    boolean isPrimitive()

Returns:
  true if this object represents a primitive type

#### isAspect

    boolean isAspect()

Returns:
  true if this is an aspect type

#### isMemberAspect

    boolean isMemberAspect()

Returns:
  true if and only if the underlying type is a member aspect

#### isPrivileged

    boolean isPrivileged()

Returns:
  true if and only if the underlying type is a privileged aspect