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

# 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