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 Details

    • 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 AdviceKinds 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 AdviceKinds 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