# Hierarchy For All Packages

Package Hierarchies:

- org.aspectj.internal.lang.annotation,
- org.aspectj.internal.lang.reflect,
- org.aspectj.lang,
- org.aspectj.lang.annotation,
- org.aspectj.lang.annotation.control,
- org.aspectj.lang.internal.lang,
- org.aspectj.lang.reflect,
- org.aspectj.runtime,
- org.aspectj.runtime.internal,
- org.aspectj.runtime.internal.cflowstack,
- org.aspectj.runtime.reflect

## Class Hierarchy

- java.lang.Object
  - org.aspectj.internal.lang.reflect.AdviceImpl (implements org.aspectj.lang.reflect.Advice)
  - org.aspectj.internal.lang.reflect.AjTypeImpl<T> (implements org.aspectj.lang.reflect.AjType<T>)
  - org.aspectj.lang.reflect.AjTypeSystem
  - org.aspectj.runtime.internal.AroundClosure
  - org.aspectj.lang.Aspects
  - org.aspectj.lang.Aspects14
  - org.aspectj.runtime.CFlow
    - org.aspectj.runtime.internal.CFlowPlusState
  - org.aspectj.runtime.internal.CFlowCounter
  - org.aspectj.runtime.internal.CFlowStack
  - org.aspectj.runtime.internal.Conversions
  - org.aspectj.internal.lang.reflect.DeclareAnnotationImpl (implements org.aspectj.lang.reflect.DeclareAnnotation)
  - org.aspectj.internal.lang.reflect.DeclareErrorOrWarningImpl (implements org.aspectj.lang.reflect.DeclareErrorOrWarning)
  - org.aspectj.internal.lang.reflect.DeclareParentsImpl (implements org.aspectj.lang.reflect.DeclareParents)
  - org.aspectj.internal.lang.reflect.DeclarePrecedenceImpl (implements org.aspectj.lang.reflect.DeclarePrecedence)
  - org.aspectj.internal.lang.reflect.DeclareSoftImpl (implements org.aspectj.lang.reflect.DeclareSoft)
  - org.aspectj.runtime.reflect.Factory
  - org.aspectj.runtime.reflect.FieldSignatureImpl (implements org.aspectj.lang.reflect.FieldSignature)
  - org.aspectj.internal.lang.reflect.InterTypeDeclarationImpl (implements org.aspectj.lang.reflect.InterTypeDeclaration)
    - org.aspectj.internal.lang.reflect.InterTypeConstructorDeclarationImpl (implements org.aspectj.lang.reflect.InterTypeConstructorDeclaration)
    - org.aspectj.internal.lang.reflect.InterTypeFieldDeclarationImpl (implements org.aspectj.lang.reflect.InterTypeFieldDeclaration)
    - org.aspectj.internal.lang.reflect.InterTypeMethodDeclarationImpl (implements org.aspectj.lang.reflect.InterTypeMethodDeclaration)
  - org.aspectj.internal.lang.reflect.PerClauseImpl (implements org.aspectj.lang.reflect.PerClause)
    - org.aspectj.internal.lang.reflect.PointcutBasedPerClauseImpl (implements org.aspectj.lang.reflect.PointcutBasedPerClause)
    - org.aspectj.internal.lang.reflect.TypePatternBasedPerClauseImpl (implements org.aspectj.lang.reflect.TypePatternBasedPerClause)
  - org.aspectj.runtime.internal.PerObjectMap
  - org.aspectj.internal.lang.reflect.PointcutExpressionImpl (implements org.aspectj.lang.reflect.PointcutExpression)
  - org.aspectj.internal.lang.reflect.PointcutImpl (implements org.aspectj.lang.reflect.Pointcut)
  - org.aspectj.internal.lang.reflect.SignaturePatternImpl (implements org.aspectj.lang.reflect.SignaturePattern)
  - org.aspectj.internal.lang.reflect.StringToType
  - org.aspectj.runtime.internal.cflowstack.ThreadCounterImpl11 (implements org.aspectj.runtime.internal.cflowstack.ThreadCounter)
  - org.aspectj.runtime.internal.cflowstack.ThreadStackFactoryImpl (implements org.aspectj.runtime.internal.cflowstack.ThreadStackFactory)
  - org.aspectj.runtime.internal.cflowstack.ThreadStackFactoryImpl11 (implements org.aspectj.runtime.internal.cflowstack.ThreadStackFactory)
  - org.aspectj.runtime.internal.cflowstack.ThreadStackImpl11 (implements org.aspectj.runtime.internal.cflowstack.ThreadStack)
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - org.aspectj.lang.reflect.NoSuchAdviceException
      - org.aspectj.lang.reflect.NoSuchPointcutException
      - java.lang.RuntimeException
        - org.aspectj.lang.NoAspectBoundException
        - org.aspectj.lang.SoftException
  - org.aspectj.internal.lang.reflect.TypePatternImpl (implements org.aspectj.lang.reflect.TypePattern)

## Interface Hierarchy

- org.aspectj.lang.reflect.Advice
- java.lang.reflect.AnnotatedElement
  - org.aspectj.lang.reflect.AjType<T> (also extends java.lang.reflect.Type)
- org.aspectj.lang.reflect.DeclareAnnotation
- org.aspectj.lang.reflect.DeclareErrorOrWarning
- org.aspectj.lang.reflect.DeclareParents
- org.aspectj.lang.reflect.DeclarePrecedence
- org.aspectj.lang.reflect.DeclareSoft
- org.aspectj.lang.reflect.InterTypeDeclaration
  - org.aspectj.lang.reflect.InterTypeConstructorDeclaration
  - org.aspectj.lang.reflect.InterTypeFieldDeclaration
  - org.aspectj.lang.reflect.InterTypeMethodDeclaration
- org.aspectj.lang.JoinPoint
  - org.aspectj.lang.ProceedingJoinPoint
- org.aspectj.lang.JoinPoint.StaticPart
  - org.aspectj.lang.JoinPoint.EnclosingStaticPart
- org.aspectj.lang.reflect.PerClause
  - org.aspectj.lang.reflect.PointcutBasedPerClause
- org.aspectj.lang.reflect.Pointcut
- org.aspectj.lang.reflect.PointcutExpression
- org.aspectj.lang.Signature
  - org.aspectj.lang.reflect.AdviceSignature
  - org.aspectj.lang.reflect.CatchClauseSignature
  - org.aspectj.lang.reflect.CodeSignature
    - org.aspectj.lang.reflect.AdviceSignature
    - org.aspectj.lang.reflect.ConstructorSignature
    - org.aspectj.lang.reflect.InitializerSignature
    - org.aspectj.lang.reflect.MethodSignature
  - org.aspectj.lang.reflect.ConstructorSignature
  - org.aspectj.lang.reflect.FieldSignature
  - org.aspectj.lang.reflect.InitializerSignature
  - org.aspectj.lang.reflect.LockSignature
  - org.aspectj.lang.reflect.MemberSignature
    - org.aspectj.lang.reflect.AdviceSignature
    - org.aspectj.lang.reflect.CodeSignature
      - org.aspectj.lang.reflect.AdviceSignature
      - org.aspectj.lang.reflect.ConstructorSignature
      - org.aspectj.lang.reflect.InitializerSignature
      - org.aspectj.lang.reflect.MethodSignature
    - org.aspectj.lang.reflect.ConstructorSignature
    - org.aspectj.lang.reflect.FieldSignature
    - org.aspectj.lang.reflect.InitializerSignature
    - org.aspectj.lang.reflect.MethodSignature
  - org.aspectj.lang.reflect.MethodSignature
  - org.aspectj.lang.reflect.UnlockSignature
- org.aspectj.lang.reflect.SignaturePattern
- org.aspectj.lang.reflect.SourceLocation
- org.aspectj.runtime.internal.cflowstack.ThreadCounter
- org.aspectj.runtime.internal.cflowstack.ThreadStack
- org.aspectj.runtime.internal.cflowstack.ThreadStackFactory
- java.lang.reflect.Type
  - org.aspectj.lang.reflect.AjType<T> (also extends java.lang.reflect.AnnotatedElement)
- org.aspectj.lang.reflect.TypePattern
- org.aspectj.lang.reflect.TypePatternBasedPerClause

## Annotation Type Hierarchy

- org.aspectj.internal.lang.annotation.ajcDeclareEoW (implements java.lang.annotation.Annotation)
- org.aspectj.internal.lang.annotation.ajcPrivileged (implements java.lang.annotation.Annotation)
- org.aspectj.internal.lang.annotation.ajcDeclareSoft (implements java.lang.annotation.Annotation)
- org.aspectj.internal.lang.annotation.ajcDeclareAnnotation (implements java.lang.annotation.Annotation)
- org.aspectj.internal.lang.annotation.ajcITD (implements java.lang.annotation.Annotation)
- org.aspectj.internal.lang.annotation.ajcDeclareParents (implements java.lang.annotation.Annotation)
- org.aspectj.internal.lang.annotation.ajcDeclarePrecedence (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.Before (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.Aspect (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.RequiredTypes (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.Around (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.AfterReturning (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.DeclareWarning (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.DeclareMixin (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.Pointcut (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.After (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.DeclareError (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.SuppressAjWarnings (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.AdviceName (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.DeclareAnnotation (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.DeclareParents (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.DeclarePrecedence (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.AfterThrowing (implements java.lang.annotation.Annotation)
- org.aspectj.lang.annotation.control.CodeGenerationHint (implements java.lang.annotation.Annotation)

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - org.aspectj.lang.reflect.AdviceKind
    - org.aspectj.lang.reflect.DeclareAnnotation.Kind
    - org.aspectj.lang.reflect.PerClauseKind