# Package org.aspectj.lang.reflect

Contains interfaces that extend `Signature` to provide additional information about each possible join point signature.

See: Description

Interface Summary
Advice: Runtime representation of an advice declaration inside an aspect
AdviceSignature
AjType<T>: The runtime representation of a type (Aspect, Class, Interface, Annotation, Enum, or Array) in an AspectJ program.
CatchClauseSignature
CodeSignature
ConstructorSignature
DeclareAnnotation: The AspectJ runtime representation of a declare annotation member in an aspect.
DeclareErrorOrWarning: AspectJ runtime representation of a declare error or declare warning member in an aspect.
DeclareParents: A declare parents member defined inside an aspect
DeclarePrecedence: AspectJ runtime representation of a declare precedence statement as declared in an aspect.
DeclareSoft: AspectJ runtime representation of a declare soft member within an aspect.
FieldSignature
InitializerSignature: Signature for static and instance initializers.
InterTypeConstructorDeclaration: Runtime representation of an inter-type constructor member declared within an aspect.
InterTypeDeclaration: Represents an inter-type method, field, or constructor declared in an aspect.
InterTypeFieldDeclaration: Represents an inter-type field declaration declared in an aspect.
InterTypeMethodDeclaration: Represents an inter-type method declaration member within an aspect.
LockSignature
MemberSignature
MethodSignature
PerClause: AspectJ runtime representation of the per-clause associated with an aspect.
Pointcut: AspectJ runtime representation of a pointcut member inside a class or aspect.
PointcutBasedPerClause: Representation of a pointcut based per-clause associated with an aspect (perthis/target/cflow/cflowbelow)
PointcutExpression: Represents an anonymous pointcut expression as used in pointcuts, advice declarations, declares, and per-clauses
SignaturePattern: AspectJ runtime representation of a signature pattern as used in various aspect members (for example, declare @method, declare @field).
SourceLocation: For defining code, the class defined and location in a source file.
TypePattern: AspectJ runtime representation of a type pattern as used in member declarations such as declare parents.
TypePatternBasedPerClause: AspectJ runtime representation of a type pattern based per-clause associated with an aspect (pertypewithin).
UnlockSignature

Class Summary
AjTypeSystem: This is the anchor for the AspectJ runtime type system.

Enum Summary
AdviceKind: The different kinds of advice in AspectJ
DeclareAnnotation.Kind
PerClauseKind: The different per-clauses (aspect instantiation models) supported by AspectJ

Exception Summary
NoSuchAdviceException: Thrown when AjType.getDeclaredAdvice is called with an advice name and no matching advice declaration can be found.
NoSuchPointcutException: Thrown when AjType.getDeclaredPointcut is called with a pointcut name, and no matching pointcut declaration can be found.

## Package org.aspectj.lang.reflect Description

Contains interfaces that extend `Signature` to provide additional information about each possible join point signature. This additional information can be accessed by casting a Signature object to the appropriate type, i.e.

      before(): call(* *(..)) {
          MethodSignature sig = (MethodSignature)thisJoinPoint.getSignature();
          ...
      }

This package also contains `SourceLocation` that provides information about the location in source code that corresponds to a particular join point.