# Hierarchy For Package org.gradle.api

Package Hierarchies:

- All Packages

## Class Hierarchy

- java.lang.Object
  - org.gradle.api.internal.AbstractTask (implements org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.TaskInternal)
    - org.gradle.api.DefaultTask
  - groovy.lang.GroovyObjectSupport (implements groovy.lang.GroovyObject)
    - groovy.util.BuilderSupport
      - groovy.util.AntBuilder
        - org.gradle.api.AntBuilder
  - org.gradle.api.Named.Namer (implements org.gradle.api.Namer<T>)
  - org.gradle.api.Namer.Comparator<T> (implements java.util.Comparator<T>)
  - org.gradle.api.Task.Namer (implements org.gradle.api.Namer<T>)
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - java.lang.RuntimeException
        - org.gradle.api.GradleException
          - org.gradle.api.BuildCancelledException
          - org.gradle.api.CircularReferenceException
          - org.gradle.api.GradleScriptException
          - org.gradle.api.IllegalDependencyNotation
          - org.gradle.api.InvalidActionClosureException
          - org.gradle.api.InvalidUserCodeException
          - org.gradle.api.InvalidUserDataException
          - org.gradle.api.ProjectConfigurationException
          - org.gradle.api.UnknownDomainObjectException
            - org.gradle.api.UnknownProjectException
            - org.gradle.api.UnknownTaskException
        - org.gradle.api.UncheckedIOException

## Interface Hierarchy

- org.gradle.api.Action<T>
- org.gradle.api.ActionConfiguration
- org.gradle.api.Buildable
  - org.gradle.api.BuildableComponentSpec (also extends org.gradle.platform.base.ComponentSpec)
- java.lang.Comparable<T>
  - org.gradle.api.Project (also extends org.gradle.api.plugins.ExtensionAware, org.gradle.api.plugins.PluginAware)
  - org.gradle.api.Task (also extends org.gradle.api.plugins.ExtensionAware)
- org.gradle.util.Configurable<T>
  - org.gradle.api.NamedDomainObjectContainer<T> (also extends org.gradle.api.NamedDomainObjectSet<T>)
    - org.gradle.api.PolymorphicDomainObjectContainer<T>
      - org.gradle.api.ExtensiblePolymorphicDomainObjectContainer<T> (also extends org.gradle.api.internal.rules.NamedDomainObjectFactoryRegistry<T>)
- org.gradle.api.Describable
- org.gradle.api.plugins.ExtensionAware
  - org.gradle.api.Project (also extends java.lang.Comparable<T>, org.gradle.api.plugins.PluginAware)
  - org.gradle.api.Task (also extends java.lang.Comparable<T>)
- java.lang.Iterable<T>
  - java.util.Collection<E>
    - org.gradle.api.DomainObjectCollection<T>
      - org.gradle.api.DomainObjectSet<T> (also extends java.util.Set<E>)
      - org.gradle.api.NamedDomainObjectCollection<T>
        - org.gradle.api.NamedDomainObjectList<T> (also extends java.util.List<E>)
        - org.gradle.api.NamedDomainObjectSet<T> (also extends java.util.Set<E>)
          - org.gradle.api.NamedDomainObjectContainer<T> (also extends org.gradle.util.Configurable<T>)
            - org.gradle.api.PolymorphicDomainObjectContainer<T>
              - org.gradle.api.ExtensiblePolymorphicDomainObjectContainer<T> (also extends org.gradle.api.internal.rules.NamedDomainObjectFactoryRegistry<T>)
    - java.util.SequencedCollection<E>
      - java.util.List<E>
        - org.gradle.api.NamedDomainObjectList<T> (also extends org.gradle.api.NamedDomainObjectCollection<T>)
    - java.util.Set<E>
      - org.gradle.api.DomainObjectSet<T> (also extends org.gradle.api.DomainObjectCollection<T>)
      - org.gradle.api.NamedDomainObjectSet<T> (also extends org.gradle.api.NamedDomainObjectCollection<T>)
        - org.gradle.api.NamedDomainObjectContainer<T> (also extends org.gradle.util.Configurable<T>)
          - org.gradle.api.PolymorphicDomainObjectContainer<T>
            - org.gradle.api.ExtensiblePolymorphicDomainObjectContainer<T> (also extends org.gradle.api.internal.rules.NamedDomainObjectFactoryRegistry<T>)
- org.gradle.api.Named
  - org.gradle.model.ModelElement
    - org.gradle.platform.base.ComponentSpec
      - org.gradle.api.BuildableComponentSpec (also extends org.gradle.api.Buildable)
      - org.gradle.api.CheckableComponentSpec
- org.gradle.api.NamedDomainObjectFactory<T>
- org.gradle.api.internal.rules.NamedDomainObjectFactoryRegistry<T>
  - org.gradle.api.ExtensiblePolymorphicDomainObjectContainer<T> (also extends org.gradle.api.PolymorphicDomainObjectContainer<T>)
- org.gradle.api.Namer<T>
- org.gradle.api.Plugin<T>
- org.gradle.api.plugins.PluginAware
  - org.gradle.api.Project (also extends java.lang.Comparable<T>, org.gradle.api.plugins.ExtensionAware)
- org.gradle.api.ProjectEvaluationListener
- org.gradle.api.ProjectState
- org.gradle.api.provider.Provider<T>
  - org.gradle.api.NamedDomainObjectProvider<T>
- org.gradle.api.Rule
- org.gradle.api.Script
- org.gradle.api.Transformer<OUT,IN>
- org.gradle.api.XmlProvider

## Annotation Interface Hierarchy

- org.gradle.api.HasImplicitReceiver (implements java.lang.annotation.Annotation)
- org.gradle.api.Incubating (implements java.lang.annotation.Annotation)
- org.gradle.api.NonExtensible (implements java.lang.annotation.Annotation)
- org.gradle.api.NonNullApi (implements java.lang.annotation.Annotation)
- org.gradle.api.Nullable (implements java.lang.annotation.Annotation)

## Enum Class Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.lang.constant.Constable, java.io.Serializable)
    - org.gradle.api.AntBuilder.AntMessagePriority
    - org.gradle.api.JavaVersion
    - org.gradle.api.PathValidation