# Interface ModuleProvider

All Known Subinterfaces:
  `CayenneRuntimeModuleProvider`

All Known Implementing Classes:
  `CoreModuleProvider`

public interface ModuleProvider

Provider of modules used by module auto-loading mechanism to identify and load modules.

Multiple providers can be created by inheriting from this interface and using it with `ModuleLoader`

Since:
  4.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Module`
  `module()`
  `Class<? extends Module>`
  `moduleType()`
  `Collection<Class<? extends Module>>`
  `overrides()`
  Returns an array of module types this module overrides.

- ## Method Details

  - ### module

    Module module()

  - ### moduleType

    Class<? extends Module> moduleType()

  - ### overrides

    Collection<Class<? extends Module>> overrides()
    Returns an array of module types this module overrides. Module auto-loading mechanism will ensure module load order that respects overriding preferences.
    Returns:
      a collection of module types this module overrides.