# Interface Usage

All Superinterfaces:
  `Named`

public interface Usage extends Named
Represents the usage of a configuration. Typical usages include compilation or runtime. This interface allows the user to customize usages by implementing this interface.

Since:
  3.4

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `C_PLUS_PLUS_API`
  The C++ API of a library, packaged as header directories.
  `static final String`
  `JAVA_API`
  The Java API of a library, packaged as class path elements, either a JAR or a classes directory.
  `static final String`
  `JAVA_RUNTIME`
  The Java runtime of a component, packaged as class path elements, either a JAR or a classes directory.
  `static final String`
  `NATIVE_LINK`
  The native link files of a library, packaged as static or shared library.
  `static final String`
  `NATIVE_RUNTIME`
  The native runtime files of a library, packaged as a shared library.
  `static final String`
  `SWIFT_API`
  The Swift API of a library, packaged as swiftmodule files.
  `static final Attribute<Usage>`
  `USAGE_ATTRIBUTE`
  Of.
  `static final String`
  `VERSION_CATALOG`
  A version catalog, packaged as TOML files, for use as recommendations for dependency and plugin versions.

- ## Method Summary

  ### Methods inherited from interface Named

  `getName`

- ## Field Details

  - ### USAGE_ATTRIBUTE

    static final Attribute<Usage> USAGE_ATTRIBUTE
    Of.
    Since:
      3.4

  - ### JAVA_API

    static final String JAVA_API
    The Java API of a library, packaged as class path elements, either a JAR or a classes directory.
    Since:
      4.0
    See Also:
      - Constant Field Values

  - ### JAVA_RUNTIME

    static final String JAVA_RUNTIME
    The Java runtime of a component, packaged as class path elements, either a JAR or a classes directory.
    Since:
      4.0
    See Also:
      - Constant Field Values

  - ### C_PLUS_PLUS_API

    static final String C_PLUS_PLUS_API
    The C++ API of a library, packaged as header directories.
    Since:
      4.1
    See Also:
      - Constant Field Values

  - ### NATIVE_LINK

    static final String NATIVE_LINK
    The native link files of a library, packaged as static or shared library.
    Since:
      4.1
    See Also:
      - Constant Field Values

  - ### NATIVE_RUNTIME

    static final String NATIVE_RUNTIME
    The native runtime files of a library, packaged as a shared library.
    Since:
      4.1
    See Also:
      - Constant Field Values

  - ### SWIFT_API

    static final String SWIFT_API
    The Swift API of a library, packaged as swiftmodule files.
    Since:
      4.1
    See Also:
      - Constant Field Values

  - ### VERSION_CATALOG

    static final String VERSION_CATALOG
    A version catalog, packaged as TOML files, for use as recommendations for dependency and plugin versions.
    Since:
      7.0
    See Also:
      - Constant Field Values