# Interface ComponentMetadataDetails

All Superinterfaces:
  `ComponentMetadata`

@Incubating @NonExtensible public interface ComponentMetadataDetails extends ComponentMetadata
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

Modifier and Type
Method
Description
`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<VariantMetadata> action)`
Add a rule for adjusting an existing variant of the component.

### Methods inherited from interface ComponentMetadata

`getId, getStatus, getStatusScheme, isChanging`

## Method Details

### 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

void withVariant(String name, Action<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