# Hierarchy For Package org.codehaus.janino

Package Hierarchies:

- All Packages

## Class Hierarchy

- java.lang.Object
  - org.codehaus.commons.compiler.AbstractCompiler (implements org.codehaus.commons.compiler.ICompiler)
    - org.codehaus.janino.Compiler
  - org.codehaus.commons.compiler.AbstractCompilerFactory (implements org.codehaus.commons.compiler.ICompilerFactory)
    - org.codehaus.janino.CompilerFactory
  - java.lang.ClassLoader
    - org.codehaus.commons.compiler.AbstractJavaSourceClassLoader
      - org.codehaus.janino.JavaSourceClassLoader
        - org.codehaus.janino.CachingJavaSourceClassLoader
  - org.codehaus.janino.CodeContext
  - org.codehaus.janino.CodeContext.Offset
    - org.codehaus.janino.CodeContext.BasicBlock
    - org.codehaus.janino.CodeContext.Inserter
    - org.codehaus.janino.CodeContext.LineNumberOffset
  - org.codehaus.commons.compiler.Cookable (implements org.codehaus.commons.compiler.ICookable)
    - org.codehaus.janino.ClassBodyEvaluator (implements org.codehaus.commons.compiler.IClassBodyEvaluator)
    - org.codehaus.commons.compiler.MultiCookable (implements org.codehaus.commons.compiler.IMultiCookable)
      - org.codehaus.janino.ExpressionEvaluator (implements org.codehaus.commons.compiler.IExpressionEvaluator)
      - org.codehaus.janino.ScriptEvaluator (implements org.codehaus.commons.compiler.IScriptEvaluator)
    - org.codehaus.janino.SimpleCompiler (implements org.codehaus.commons.compiler.ISimpleCompiler)
  - org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter (implements org.apache.tools.ant.taskdefs.compilers.CompilerAdapter, org.apache.tools.ant.taskdefs.compilers.CompilerAdapterExtension)
    - org.codehaus.janino.AntCompilerAdapter
  - org.codehaus.janino.Descriptor
  - org.codehaus.janino.FilterWarningHandler (implements org.codehaus.commons.compiler.WarningHandler)
  - org.codehaus.janino.IClass (implements org.codehaus.janino.ITypeVariableOrIClass)
    - org.codehaus.janino.ClassFileIClass
  - org.codehaus.janino.IClass.IField (implements org.codehaus.janino.IClass.IMember)
    - org.codehaus.janino.UnitCompiler.SimpleIField
  - org.codehaus.janino.IClass.IInvocable (implements org.codehaus.janino.IClass.IMember)
    - org.codehaus.janino.IClass.IConstructor
    - org.codehaus.janino.IClass.IMethod
  - org.codehaus.janino.IClassLoader
    - org.codehaus.janino.ClassLoaderIClassLoader
    - org.codehaus.janino.JavaSourceIClassLoader
    - org.codehaus.janino.ResourceFinderIClassLoader
  - org.codehaus.janino.Java
  - org.codehaus.janino.Java.AbstractAnnotation (implements org.codehaus.janino.Java.Annotation)
    - org.codehaus.janino.Java.MarkerAnnotation
    - org.codehaus.janino.Java.NormalAnnotation
    - org.codehaus.janino.Java.SingleElementAnnotation
  - org.codehaus.janino.Java.AbstractCompilationUnit (implements org.codehaus.janino.Java.Scope)
    - org.codehaus.janino.Java.CompilationUnit
    - org.codehaus.janino.Java.ModularCompilationUnit
  - org.codehaus.janino.Java.AbstractTypeDeclaration (implements org.codehaus.janino.Java.TypeDeclaration)
    - org.codehaus.janino.Java.AbstractClassDeclaration (implements org.codehaus.janino.Java.ClassDeclaration)
      - org.codehaus.janino.Java.AnonymousClassDeclaration
      - org.codehaus.janino.Java.EnumConstant (implements org.codehaus.janino.Java.DocCommentable)
      - org.codehaus.janino.Java.NamedClassDeclaration (implements org.codehaus.janino.Java.DocCommentable, org.codehaus.janino.Java.NamedTypeDeclaration)
        - org.codehaus.janino.Java.LocalClassDeclaration
        - org.codehaus.janino.Java.MemberClassDeclaration (implements org.codehaus.janino.Java.MemberTypeDeclaration)
          - org.codehaus.janino.Java.MemberEnumDeclaration (implements org.codehaus.janino.Java.EnumDeclaration)
        - org.codehaus.janino.Java.PackageMemberClassDeclaration (implements org.codehaus.janino.Java.PackageMemberTypeDeclaration)
          - org.codehaus.janino.Java.PackageMemberEnumDeclaration (implements org.codehaus.janino.Java.EnumDeclaration)
    - org.codehaus.janino.Java.InterfaceDeclaration (implements org.codehaus.janino.Java.DocCommentable, org.codehaus.janino.Java.NamedTypeDeclaration)
      - org.codehaus.janino.Java.MemberInterfaceDeclaration (implements org.codehaus.janino.Java.MemberTypeDeclaration)
        - org.codehaus.janino.Java.MemberAnnotationTypeDeclaration (implements org.codehaus.janino.Java.AnnotationTypeDeclaration)
      - org.codehaus.janino.Java.PackageMemberInterfaceDeclaration (implements org.codehaus.janino.Java.PackageMemberTypeDeclaration)
        - org.codehaus.janino.Java.PackageMemberAnnotationTypeDeclaration (implements org.codehaus.janino.Java.AnnotationTypeDeclaration)
  - org.codehaus.janino.Java.BlockLambdaBody (implements org.codehaus.janino.Java.LambdaBody)
  - org.codehaus.janino.Java.ElementValuePair
  - org.codehaus.janino.Java.EnclosingScopeOfTypeDeclaration (implements org.codehaus.janino.Java.Scope)
  - org.codehaus.janino.Java.ExpressionLambdaBody (implements org.codehaus.janino.Java.LambdaBody)
  - org.codehaus.janino.Java.FormalLambdaParameters (implements org.codehaus.janino.Java.LambdaParameters)
  - org.codehaus.janino.Java.IdentifierLambdaParameters (implements org.codehaus.janino.Java.LambdaParameters)
  - org.codehaus.janino.Java.InferredLambdaParameters (implements org.codehaus.janino.Java.LambdaParameters)
  - org.codehaus.janino.Java.LocalVariable
  - org.codehaus.janino.Java.LocalVariableSlot
  - org.codehaus.janino.Java.Located (implements org.codehaus.janino.Java.Locatable)
    - org.codehaus.janino.Java.AbstractCompilationUnit.ImportDeclaration
      - org.codehaus.janino.Java.AbstractCompilationUnit.SingleStaticImportDeclaration
      - org.codehaus.janino.Java.AbstractCompilationUnit.SingleTypeImportDeclaration
      - org.codehaus.janino.Java.AbstractCompilationUnit.StaticImportOnDemandDeclaration
      - org.codehaus.janino.Java.AbstractCompilationUnit.TypeImportOnDemandDeclaration
    - org.codehaus.janino.Java.AbstractTypeBodyDeclaration (implements org.codehaus.janino.Java.TypeBodyDeclaration)
      - org.codehaus.janino.Java.FunctionDeclarator (implements org.codehaus.janino.Java.Annotatable, org.codehaus.janino.Java.DocCommentable)
        - org.codehaus.janino.Java.ConstructorDeclarator
        - org.codehaus.janino.Java.MethodDeclarator
      - org.codehaus.janino.Java.Initializer (implements org.codehaus.janino.Java.FieldDeclarationOrInitializer)
    - org.codehaus.janino.Java.AccessModifier (implements org.codehaus.janino.Java.Modifier)
    - org.codehaus.janino.Java.ArrayInitializer (implements org.codehaus.janino.Java.ArrayInitializerOrRvalue)
    - org.codehaus.janino.Java.Atom
      - org.codehaus.janino.Java.ConstructorInvocation (implements org.codehaus.janino.Java.BlockStatement)
        - org.codehaus.janino.Java.AlternateConstructorInvocation
        - org.codehaus.janino.Java.SuperConstructorInvocation
      - org.codehaus.janino.Java.Package
      - org.codehaus.janino.Java.Rvalue (implements org.codehaus.janino.Java.ArrayInitializerOrRvalue, org.codehaus.janino.Java.ElementValue)
        - org.codehaus.janino.Java.ArrayCreationReference
        - org.codehaus.janino.Java.ArrayLength
        - org.codehaus.janino.Java.Assignment
        - org.codehaus.janino.Java.BooleanRvalue
          - org.codehaus.janino.Java.BinaryOperation
          - org.codehaus.janino.Java.UnaryOperation
        - org.codehaus.janino.Java.Cast
        - org.codehaus.janino.Java.ClassInstanceCreationReference
        - org.codehaus.janino.Java.ClassLiteral
        - org.codehaus.janino.Java.ConditionalExpression
        - org.codehaus.janino.Java.Crement
        - org.codehaus.janino.Java.Instanceof
        - org.codehaus.janino.Java.Invocation
          - org.codehaus.janino.Java.MethodInvocation
          - org.codehaus.janino.Java.SuperclassMethodInvocation
        - org.codehaus.janino.Java.LambdaExpression
        - org.codehaus.janino.Java.Literal
          - org.codehaus.janino.Java.BooleanLiteral
          - org.codehaus.janino.Java.CharacterLiteral
          - org.codehaus.janino.Java.FloatingPointLiteral
          - org.codehaus.janino.Java.IntegerLiteral
          - org.codehaus.janino.Java.NullLiteral
          - org.codehaus.janino.Java.StringLiteral
          - org.codehaus.janino.Java.TextBlock
        - org.codehaus.janino.Java.Lvalue
          - org.codehaus.janino.Java.AmbiguousName
          - org.codehaus.janino.Java.ArrayAccessExpression
          - org.codehaus.janino.Java.FieldAccess
          - org.codehaus.janino.Java.FieldAccessExpression
          - org.codehaus.janino.Java.LocalVariableAccess
          - org.codehaus.janino.Java.ParenthesizedExpression
          - org.codehaus.janino.Java.SuperclassFieldAccessExpression
        - org.codehaus.janino.Java.MethodReference
        - org.codehaus.janino.Java.NewAnonymousClassInstance
        - org.codehaus.janino.Java.NewArray
        - org.codehaus.janino.Java.NewClassInstance
        - org.codehaus.janino.Java.NewInitializedArray
        - org.codehaus.janino.Java.ParameterAccess
        - org.codehaus.janino.Java.QualifiedThisReference
        - org.codehaus.janino.Java.SimpleConstant
        - org.codehaus.janino.Java.ThisReference
      - org.codehaus.janino.Java.Type
        - org.codehaus.janino.Java.ArrayType (implements org.codehaus.janino.Java.TypeArgument)
        - org.codehaus.janino.Java.PrimitiveType
        - org.codehaus.janino.Java.ReferenceType (implements org.codehaus.janino.Java.TypeArgument)
        - org.codehaus.janino.Java.RvalueMemberType
        - org.codehaus.janino.Java.SimpleType
    - org.codehaus.janino.Java.CatchClause (implements org.codehaus.janino.Java.Scope)
    - org.codehaus.janino.Java.CatchParameter
    - org.codehaus.janino.Java.ElementValueArrayInitializer (implements org.codehaus.janino.Java.ElementValue)
    - org.codehaus.janino.Java.ExportsModuleDirective (implements org.codehaus.janino.Java.ModuleDirective)
    - org.codehaus.janino.Java.FunctionDeclarator.FormalParameter
    - org.codehaus.janino.Java.FunctionDeclarator.FormalParameters
    - org.codehaus.janino.Java.ModuleDeclaration
    - org.codehaus.janino.Java.OpensModuleDirective (implements org.codehaus.janino.Java.ModuleDirective)
    - org.codehaus.janino.Java.PackageDeclaration
    - org.codehaus.janino.Java.ProvidesModuleDirective (implements org.codehaus.janino.Java.ModuleDirective)
    - org.codehaus.janino.Java.RequiresModuleDirective (implements org.codehaus.janino.Java.ModuleDirective)
    - org.codehaus.janino.Java.Statement (implements org.codehaus.janino.Java.BlockStatement)
      - org.codehaus.janino.Java.AssertStatement
      - org.codehaus.janino.Java.Block
      - org.codehaus.janino.Java.BreakableStatement
        - org.codehaus.janino.Java.ContinuableStatement
          - org.codehaus.janino.Java.DoStatement
          - org.codehaus.janino.Java.ForEachStatement
          - org.codehaus.janino.Java.ForStatement
          - org.codehaus.janino.Java.WhileStatement
        - org.codehaus.janino.Java.LabeledStatement
        - org.codehaus.janino.Java.SwitchStatement
      - org.codehaus.janino.Java.BreakStatement
      - org.codehaus.janino.Java.ContinueStatement
      - org.codehaus.janino.Java.EmptyStatement
      - org.codehaus.janino.Java.ExpressionStatement
      - org.codehaus.janino.Java.FieldDeclaration (implements org.codehaus.janino.Java.Annotatable, org.codehaus.janino.Java.DocCommentable, org.codehaus.janino.Java.FieldDeclarationOrInitializer)
      - org.codehaus.janino.Java.IfStatement
      - org.codehaus.janino.Java.LocalClassDeclarationStatement
      - org.codehaus.janino.Java.LocalVariableDeclarationStatement
      - org.codehaus.janino.Java.ReturnStatement
      - org.codehaus.janino.Java.SynchronizedStatement
      - org.codehaus.janino.Java.ThrowStatement
      - org.codehaus.janino.Java.TryStatement
    - org.codehaus.janino.Java.SwitchStatement.SwitchBlockStatementGroup
    - org.codehaus.janino.Java.TryStatement.Resource
      - org.codehaus.janino.Java.TryStatement.LocalVariableDeclaratorResource
      - org.codehaus.janino.Java.TryStatement.VariableAccessResource
    - org.codehaus.janino.Java.UsesModuleDirective (implements org.codehaus.janino.Java.ModuleDirective)
    - org.codehaus.janino.Java.VariableDeclarator
  - org.codehaus.janino.Java.Modifiers
  - org.codehaus.janino.Java.TypeParameter
  - org.codehaus.janino.Java.Wildcard (implements org.codehaus.janino.Java.TypeArgument)
  - org.codehaus.janino.MethodDescriptor
  - org.codehaus.janino.Mod
  - org.codehaus.janino.Parser
  - java.io.Reader (implements java.io.Closeable, java.lang.Readable)
    - java.io.FilterReader
      - org.codehaus.janino.UnicodeUnescapeReader
  - org.codehaus.janino.Scanner
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - java.lang.RuntimeException
        - org.codehaus.janino.UnicodeUnescapeException
  - org.codehaus.janino.Token
  - org.codehaus.janino.TokenStreamImpl (implements org.codehaus.janino.TokenStream)
  - org.codehaus.janino.UnitCompiler
  - org.codehaus.janino.Unparser (implements java.lang.AutoCloseable)
  - org.codehaus.janino.Visitor

## Interface Hierarchy

- org.codehaus.janino.CodeContext.FixUp
- org.codehaus.janino.IClass.IAnnotation
- org.codehaus.janino.IClass.IMember
- org.codehaus.janino.IType
  - org.codehaus.janino.IParameterizedType
  - org.codehaus.janino.ITypeVariableOrIClass
    - org.codehaus.janino.ITypeVariable
  - org.codehaus.janino.IWildcardType
- org.codehaus.janino.Java.Annotatable
  - org.codehaus.janino.Java.TypeDeclaration (also extends org.codehaus.janino.Java.Locatable, org.codehaus.janino.Java.Scope)
    - org.codehaus.janino.Java.ClassDeclaration
      - org.codehaus.janino.Java.EnumDeclaration (also extends org.codehaus.janino.Java.DocCommentable, org.codehaus.janino.Java.NamedTypeDeclaration)
    - org.codehaus.janino.Java.NamedTypeDeclaration
      - org.codehaus.janino.Java.AnnotationTypeDeclaration (also extends org.codehaus.janino.Java.DocCommentable)
      - org.codehaus.janino.Java.EnumDeclaration (also extends org.codehaus.janino.Java.ClassDeclaration, org.codehaus.janino.Java.DocCommentable)
      - org.codehaus.janino.Java.MemberTypeDeclaration (also extends org.codehaus.janino.Java.TypeBodyDeclaration)
      - org.codehaus.janino.Java.PackageMemberTypeDeclaration
- org.codehaus.janino.Java.DocCommentable
  - org.codehaus.janino.Java.AnnotationTypeDeclaration (also extends org.codehaus.janino.Java.NamedTypeDeclaration)
  - org.codehaus.janino.Java.EnumDeclaration (also extends org.codehaus.janino.Java.ClassDeclaration, org.codehaus.janino.Java.NamedTypeDeclaration)
- org.codehaus.janino.Java.LambdaBody
- org.codehaus.janino.Java.LambdaParameters
- org.codehaus.janino.Java.Locatable
  - org.codehaus.janino.Java.Annotation (also extends org.codehaus.janino.Java.ElementValue, org.codehaus.janino.Java.Modifier)
  - org.codehaus.janino.Java.ArrayInitializerOrRvalue
  - org.codehaus.janino.Java.BlockStatement (also extends org.codehaus.janino.Java.Scope)
    - org.codehaus.janino.Java.FieldDeclarationOrInitializer (also extends org.codehaus.janino.Java.TypeBodyDeclaration)
  - org.codehaus.janino.Java.ElementValue
    - org.codehaus.janino.Java.Annotation (also extends org.codehaus.janino.Java.Locatable, org.codehaus.janino.Java.Modifier)
  - org.codehaus.janino.Java.Modifier
    - org.codehaus.janino.Java.Annotation (also extends org.codehaus.janino.Java.ElementValue, org.codehaus.janino.Java.Locatable)
  - org.codehaus.janino.Java.TypeBodyDeclaration (also extends org.codehaus.janino.Java.Scope)
    - org.codehaus.janino.Java.FieldDeclarationOrInitializer (also extends org.codehaus.janino.Java.BlockStatement)
    - org.codehaus.janino.Java.MemberTypeDeclaration (also extends org.codehaus.janino.Java.NamedTypeDeclaration)
  - org.codehaus.janino.Java.TypeDeclaration (also extends org.codehaus.janino.Java.Annotatable, org.codehaus.janino.Java.Scope)
    - org.codehaus.janino.Java.ClassDeclaration
      - org.codehaus.janino.Java.EnumDeclaration (also extends org.codehaus.janino.Java.DocCommentable, org.codehaus.janino.Java.NamedTypeDeclaration)
    - org.codehaus.janino.Java.NamedTypeDeclaration
      - org.codehaus.janino.Java.AnnotationTypeDeclaration (also extends org.codehaus.janino.Java.DocCommentable)
      - org.codehaus.janino.Java.EnumDeclaration (also extends org.codehaus.janino.Java.ClassDeclaration, org.codehaus.janino.Java.DocCommentable)
      - org.codehaus.janino.Java.MemberTypeDeclaration (also extends org.codehaus.janino.Java.TypeBodyDeclaration)
      - org.codehaus.janino.Java.PackageMemberTypeDeclaration
- org.codehaus.janino.Java.ModuleDirective
- org.codehaus.janino.Java.Scope
  - org.codehaus.janino.Java.BlockStatement (also extends org.codehaus.janino.Java.Locatable)
    - org.codehaus.janino.Java.FieldDeclarationOrInitializer (also extends org.codehaus.janino.Java.TypeBodyDeclaration)
  - org.codehaus.janino.Java.TypeBodyDeclaration (also extends org.codehaus.janino.Java.Locatable)
    - org.codehaus.janino.Java.FieldDeclarationOrInitializer (also extends org.codehaus.janino.Java.BlockStatement)
    - org.codehaus.janino.Java.MemberTypeDeclaration (also extends org.codehaus.janino.Java.NamedTypeDeclaration)
  - org.codehaus.janino.Java.TypeDeclaration (also extends org.codehaus.janino.Java.Annotatable, org.codehaus.janino.Java.Locatable)
    - org.codehaus.janino.Java.ClassDeclaration
      - org.codehaus.janino.Java.EnumDeclaration (also extends org.codehaus.janino.Java.DocCommentable, org.codehaus.janino.Java.NamedTypeDeclaration)
    - org.codehaus.janino.Java.NamedTypeDeclaration
      - org.codehaus.janino.Java.AnnotationTypeDeclaration (also extends org.codehaus.janino.Java.DocCommentable)
      - org.codehaus.janino.Java.EnumDeclaration (also extends org.codehaus.janino.Java.ClassDeclaration, org.codehaus.janino.Java.DocCommentable)
      - org.codehaus.janino.Java.MemberTypeDeclaration (also extends org.codehaus.janino.Java.TypeBodyDeclaration)
      - org.codehaus.janino.Java.PackageMemberTypeDeclaration
- org.codehaus.janino.Java.TypeArgument
- org.codehaus.janino.TokenStream
- org.codehaus.janino.UnitCompiler.ClassFileConsumer
- org.codehaus.janino.Visitor.AbstractCompilationUnitVisitor<R,EX>
- org.codehaus.janino.Visitor.AnnotationVisitor<R,EX>
  - org.codehaus.janino.Visitor.ModifierVisitor<R,EX>
- org.codehaus.janino.Visitor.ArrayInitializerOrRvalueVisitor<R,EX>
- org.codehaus.janino.Visitor.AtomVisitor<R,EX>
- org.codehaus.janino.Visitor.ConstructorInvocationVisitor<R,EX>
- org.codehaus.janino.Visitor.ElementValueVisitor<R,EX>
- org.codehaus.janino.Visitor.FieldDeclarationOrInitializerVisitor<R,EX>
  - org.codehaus.janino.Visitor.BlockStatementVisitor<R,EX>
- org.codehaus.janino.Visitor.FunctionDeclaratorVisitor<R,EX>
- org.codehaus.janino.Visitor.ImportVisitor<R,EX>
- org.codehaus.janino.Visitor.LambdaBodyVisitor<R,EX>
- org.codehaus.janino.Visitor.LambdaParametersVisitor<R,EX>
- org.codehaus.janino.Visitor.LvalueVisitor<R,EX>
- org.codehaus.janino.Visitor.ModuleDirectiveVisitor<R,EX>
- org.codehaus.janino.Visitor.RvalueVisitor<R,EX>
- org.codehaus.janino.Visitor.TryStatementResourceVisitor<R,EX>
- org.codehaus.janino.Visitor.TypeArgumentVisitor<R,EX>
- org.codehaus.janino.Visitor.TypeBodyDeclarationVisitor<R,EX>
- org.codehaus.janino.Visitor.TypeDeclarationVisitor<R,EX>
- org.codehaus.janino.Visitor.TypeVisitor<R,EX>

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.lang.constant.Constable, java.io.Serializable)
    - org.codehaus.janino.Access
    - org.codehaus.janino.JaninoOption
    - org.codehaus.janino.Java.Primitive
    - org.codehaus.janino.Parser.ClassDeclarationContext
    - org.codehaus.janino.Parser.InterfaceDeclarationContext
    - org.codehaus.janino.Parser.MethodDeclarationContext
    - org.codehaus.janino.TokenType