# Interface MutableCapabilitiesMetadata

All Superinterfaces:
  `CapabilitiesMetadata`

public interface MutableCapabilitiesMetadata extends CapabilitiesMetadata
Describes the capabilities of a component in a mutable way. This interface can be used to adjust the capabilities of a published component via metadata rules (see `ComponentMetadataHandler`.

Since:
  4.7

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addCapability(String group, String name, String version)`
  Adds a new capability.
  `CapabilitiesMetadata`
  `asImmutable()`
  Returns an immutable vew of the capabilities.
  `void`
  `removeCapability(String group, String name)`
  Removes a capability.

  ### Methods inherited from interface CapabilitiesMetadata

  `getCapabilities`

- ## Method Details

  - ### addCapability

    void addCapability(String group, String name, String version)
    Adds a new capability. If a capability of the same (group, name) is found with a different version, an error will be thrown.
    Parameters:
      `group` - the group of the capability
      `name` - the name of the capability
      `version` - the version of the capability

  - ### removeCapability

    void removeCapability(String group, String name)
    Removes a capability.
    Parameters:
      `group` - the group of the capability
      `name` - the name of the capability

  - ### asImmutable

    CapabilitiesMetadata asImmutable()
    Returns an immutable vew of the capabilities.
    Returns:
      an immutable view of the capabilities