# Hierarchy For Package org.gradle.api.component

Package Hierarchies:

- All Packages

## Interface Hierarchy

- org.gradle.api.component.Artifact
- org.gradle.api.component.Component
- 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.component.SoftwareComponentContainer
- org.gradle.api.component.ConfigurationVariantDetails
- org.gradle.api.attributes.HasAttributes
  - org.gradle.api.component.SoftwareComponentVariant (also extends org.gradle.api.Named)
- 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.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.component.SoftwareComponentContainer
      - org.gradle.api.NamedDomainObjectCollection<T>
        - org.gradle.api.NamedDomainObjectSet<T> (also extends org.gradle.api.DomainObjectSet<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.component.SoftwareComponentContainer
    - 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.component.SoftwareComponentContainer
- org.gradle.api.Named
  - org.gradle.api.component.SoftwareComponent
    - org.gradle.api.component.AdhocComponentWithVariants
    - org.gradle.api.component.BuildableComponent
    - org.gradle.api.component.ComponentWithCoordinates
      - org.gradle.api.component.PublishableComponent (also extends org.gradle.api.component.SoftwareComponent)
    - org.gradle.api.component.ComponentWithVariants
    - org.gradle.api.component.PublishableComponent (also extends org.gradle.api.component.ComponentWithCoordinates)
  - org.gradle.api.component.SoftwareComponentVariant (also extends org.gradle.api.attributes.HasAttributes)
- org.gradle.api.internal.rules.NamedDomainObjectFactoryRegistry<T>
  - org.gradle.api.ExtensiblePolymorphicDomainObjectContainer<T> (also extends org.gradle.api.PolymorphicDomainObjectContainer<T>)
    - org.gradle.api.component.SoftwareComponentContainer
- org.gradle.api.component.SoftwareComponentFactory