ModuleElement.Directive (Java SE 26 & JDK 26)
Description: declaration: module: java.compiler, package: javax.lang.model.element, interface: ModuleElement, interface: Directive
Keywords: javax.lang.model.element.ModuleElement.Directive interface

# Interface ModuleElement.Directive

All Known Subinterfaces:
  `ModuleElement.ExportsDirective, ModuleElement.OpensDirective, ModuleElement.ProvidesDirective, ModuleElement.RequiresDirective, ModuleElement.UsesDirective`

Enclosing interface:
  `ModuleElement`

public static interface ModuleElement.Directive
Represents a directive within the declaration of this module. The directives of a module declaration configure the module in the Java Platform Module System.

Since:
  9

- ## Method Summary

  Modifier and Type
  Method
  Description
  `<R,P> R`
  `accept(ModuleElement.DirectiveVisitor<R,P> v, P p)`
  Applies a visitor to this directive.
  `ModuleElement.DirectiveKind`
  `getKind()`
  Returns the `kind` of this directive.

- ## Method Details

  - ### getKind

    ModuleElement.DirectiveKind getKind()
    Returns the `kind` of this directive.
    - The kind of a requires directive is `REQUIRES`.
    - The kind of an exports directive is `EXPORTS`.
    - The kind of an opens directive is `OPENS`.
    - The kind of a uses directive is `USES`.
    - The kind of a provides directive is `PROVIDES`.
    Returns:
      the `kind` of this directive

  - ### accept

    <R,P> R accept(ModuleElement.DirectiveVisitor<R,P> v, P p)
    Applies a visitor to this directive.
    Type Parameters:
      `R` - the return type of the visitor's methods
      `P` - the type of the additional parameter to the visitor's methods
    Parameters:
      `v` - the visitor operating on this directive
      `p` - additional parameter to the visitor
    Returns:
      a visitor-specified result