Package org.gradle.api.artifacts

## Interface ComponentMetadataDetails

- All Superinterfaces:
    `ComponentMetadata`, `HasAttributes`, `HasConfigurableAttributes<ComponentMetadataDetails>`

      @NonExtensible
      public interface ComponentMetadataDetails
      extends ComponentMetadata, HasConfigurableAttributes<ComponentMetadataDetails>

  Describes a resolved component's metadata, which typically originates from a component descriptor (Ivy file, Maven POM). Some parts of the metadata can be changed via metadata rules (see `ComponentMetadataHandler`.
  Since:
    1.8

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `allVariants​(Action<? super VariantMetadata> action)` | Add a rule for adjusting all variants of a component.
    `void` | `belongsTo​(Object notation)` | Declares that this component belongs to a virtual platform, which should be considered during dependency resolution.
    `void` | `belongsTo​(Object notation, boolean virtual)` | Declares that this component belongs to a platform, which should be considered during dependency resolution.
    `void` | `setChanging​(boolean changing)` | Sets whether the component is changing or immutable.
    `void` | `setStatus​(String status)` | Sets the status of the component.
    `void` | `setStatusScheme​(List<String> statusScheme)` | Sets the status scheme of the component.
    `void` | `withVariant​(String name, Action<? super VariantMetadata> action)` | Add a rule for adjusting an existing variant of the component.

    - ### Methods inherited from interface org.gradle.api.artifacts.ComponentMetadata

      `getId, getStatus, getStatusScheme, isChanging`

    - ### Methods inherited from interface org.gradle.api.attributes.HasAttributes

      `getAttributes`

    - ### Methods inherited from interface org.gradle.api.attributes.HasConfigurableAttributes

      `attributes`

- - ### Method Detail

    - #### setChanging

          void setChanging​(boolean changing)

      Sets whether the component is changing or immutable.
      Parameters:
        `changing` - whether the component is changing or immutable

    - #### setStatus

          void setStatus​(String status)

      Sets the status of the component. Must match one of the values in `ComponentMetadata.getStatusScheme()`.
      Parameters:
        `status` - the status of the component

    - #### setStatusScheme

          void setStatusScheme​(List<String> statusScheme)

      Sets the status scheme of the component. Values are ordered from least to most mature status.
      Parameters:
        `statusScheme` - the status scheme of the component

    - #### withVariant

          @Incubating
          void withVariant​(String name,
                           Action<? super VariantMetadata> action)

      Add a rule for adjusting an existing variant of the component.
      Parameters:
        `name` - name of the variant to adjust (e.g. 'compile')
        `action` - the action to modify the variant
      Since:
        4.4

    - #### allVariants

          @Incubating
          void allVariants​(Action<? super VariantMetadata> action)

      Add a rule for adjusting all variants of a component.
      Parameters:
        `action` - the action to be executed on each variant.
      Since:
        4.5

    - #### belongsTo

          @Incubating
          void belongsTo​(Object notation)

      Declares that this component belongs to a virtual platform, which should be considered during dependency resolution.
      Parameters:
        `notation` - the coordinates of the owner
      Since:
        4.10

    - #### belongsTo

          @Incubating
          void belongsTo​(Object notation,
                         boolean virtual)

      Declares that this component belongs to a platform, which should be considered during dependency resolution.
      Parameters:
        `notation` - the coordinates of the owner
        `virtual` - must be set to true if the platform is a virtual platform, or false if it's a published platform
      Since:
        5.0