# Interface ModuleElement.ProvidesDirective

All Superinterfaces:
  `ModuleElement.Directive`

Enclosing interface:
  `ModuleElement`

public static interface ModuleElement.ProvidesDirective extends ModuleElement.Directive
An implementation of a service provided by a module.

Since:
  9

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<? extends TypeElement>`
  `getImplementations()`
  Returns the implementations of the service being provided.
  `TypeElement`
  `getService()`
  Returns the service being provided.

  ### Methods declared in interface ModuleElement.Directive

  `accept, getKind`
  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

  - ### getService

    TypeElement getService()
    Returns the service being provided.
    Returns:
      the service being provided

  - ### getImplementations

    List<? extends TypeElement> getImplementations()
    Returns the implementations of the service being provided.
    Returns:
      the implementations of the service being provided