Module java.compiler
Package javax.lang.model.element

## Enum ModuleElement.DirectiveKind

- java.lang.Object
- - java.lang.Enum<ModuleElement.DirectiveKind>
  - - javax.lang.model.element.ModuleElement.DirectiveKind

- All Implemented Interfaces:
    `Serializable`, `Comparable<ModuleElement.DirectiveKind>`, `Constable`
  Enclosing interface:
    ModuleElement

      public static enum ModuleElement.DirectiveKind
      extends Enum<ModuleElement.DirectiveKind>

  The `kind` of a directive.

  Note that it is possible additional directive kinds will be added to accommodate new, currently unknown, language structures added to future versions of the Java™ programming language.

  Since:
    9

- - ### Nested Class Summary

    - ### Nested classes/interfaces declared in class java.lang.Enum

      `Enum.EnumDesc<E extends Enum<E>>`

  - ### Enum Constant Summary

    Enum Constants
    Enum Constant | Description
    --- | ---
    `EXPORTS` | An "exports package-name [to module-name-list]" directive.
    `OPENS` | An "opens package-name [to module-name-list]" directive.
    `PROVIDES` | A "provides service-name with implementation-name" directive.
    `REQUIRES` | A "requires (static|transitive)* module-name" directive.
    `USES` | A "uses service-name" directive.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `static ModuleElement.DirectiveKind` | `valueOf​(String name)` | Returns the enum constant of this type with the specified name.
    `static ModuleElement.DirectiveKind[]` | `values()` | Returns an array containing the constants of this enum type, in the order they are declared.

    - ### Methods declared in class java.lang.Enum

      `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

    - ### Methods declared in class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### REQUIRES

          public static final ModuleElement.DirectiveKind REQUIRES

      A "requires (static|transitive)* module-name" directive.

    - #### EXPORTS

          public static final ModuleElement.DirectiveKind EXPORTS

      An "exports package-name [to module-name-list]" directive.

    - #### OPENS

          public static final ModuleElement.DirectiveKind OPENS

      An "opens package-name [to module-name-list]" directive.

    - #### USES

          public static final ModuleElement.DirectiveKind USES

      A "uses service-name" directive.

    - #### PROVIDES

          public static final ModuleElement.DirectiveKind PROVIDES

      A "provides service-name with implementation-name" directive.

  - ### Method Detail

    - #### values

          public static ModuleElement.DirectiveKind[] values()

      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static ModuleElement.DirectiveKind valueOf​(String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
        `name` - the name of the enum constant to be returned.
      Returns:
        the enum constant with the specified name
      Throws:
        `IllegalArgumentException` - if this enum type has no constant with the specified name
        `NullPointerException` - if the argument is null