Package org.gradle.api.artifacts

## Interface ModuleDependencyCapabilitiesHandler

-     public interface ModuleDependencyCapabilitiesHandler

  The capabilities requested for a dependency. This is used in variant-aware dependency management, to select only variants which provide the requested capabilities. By default, Gradle will only look for variants which provide the "implicit" capability, which corresponds to the GAV coordinates of the component. If the user calls methods on this handler, then the requirements change and explicit capabilities are required.
  Since:
    5.3

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `requireCapabilities​(java.lang.Object... capabilityNotations)` | Requires multiple capabilities.
    `void` | `requireCapability​(java.lang.Object capabilityNotation)` | Requires a single capability.
    `void` | `requireFeature​(java.lang.String featureName)` | Require a capability of a component based on the name of the feature provided by the component.
    `void` | `requireFeature​(Provider<java.lang.String> featureName)` | Lazily require a capability of a component based on the name of the feature provided by the component.

- - ### Method Detail

    - #### requireCapability

          void requireCapability​(java.lang.Object capabilityNotation)

      Requires a single capability.
      Parameters:
        `capabilityNotation` - the capability notation (e.g. group:name:version), Providers of any notation are also accepted

    - #### requireCapabilities

          void requireCapabilities​(java.lang.Object... capabilityNotations)

      Requires multiple capabilities. The selected variants MUST provide ALL of them to be selected.
      Parameters:
        `capabilityNotations` - the capability notations (e.g. group:name:version), Providers of any notation are also accepted

    - #### requireFeature

          @Incubating
          void requireFeature​(java.lang.String featureName)

      Require a capability of a component based on the name of the feature provided by the component.

      A capability is derived from a feature based on the module identity of the component that a dependency resolves to. For example, variant of a component with module identity 'group:name:version' that provides a feature named 'test-fixtures' would have a capability 'group:name-test-fixtures:version'.

      Parameters:
        `featureName` - The name of the feature to require
      Since:
        8.11

    - #### requireFeature

          @Incubating
          void requireFeature​(Provider<java.lang.String> featureName)

      Lazily require a capability of a component based on the name of the feature provided by the component.
      Parameters:
        `featureName` - The name of the feature to require
      Since:
        8.11
      See Also:
        `requireFeature(String)`