# Interface ModuleVersionSelector

All Known Subinterfaces:
  `DependencyConstraint, ExternalDependency, ExternalModuleDependency, MinimalExternalModuleDependency`

public interface ModuleVersionSelector
Selects a module version. If you need to change this interface, you're probably doing it wrong: it is superseded by `ModuleComponentSelector`, so check this first, and only add methods here if it's for bridging.

Since:
  1.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getGroup()`
  The group of the module.
  `ModuleIdentifier`
  `getModule()`
  The module identifier of the component.
  `String`
  `getName()`
  The name of the module.
  `@Nullable String`
  `getVersion()`
  The version of the module.
  `boolean`
  `matchesStrictly(ModuleVersionIdentifier identifier)`
  To match strictly means that the given identifier needs to have equal group, module name and version.

- ## Method Details

  - ### getGroup

    String getGroup()
    The group of the module.
    Returns:
      module group
    Since:
      1.0

  - ### getName

    String getName()
    The name of the module.
    Returns:
      module name
    Since:
      1.0

  - ### getVersion

    @Nullable String getVersion()
    The version of the module. May be null.
    Returns:
      module version
    Since:
      1.0

  - ### matchesStrictly

    boolean matchesStrictly(ModuleVersionIdentifier identifier)
    To match strictly means that the given identifier needs to have equal group, module name and version. It does not smartly match dynamic versions, e.g. '1.+' selector does not strictly match '1.2' identifier.
    Returns:
      if this selector matches exactly the given identifier.
    Since:
      1.3

  - ### getModule

    ModuleIdentifier getModule()
    The module identifier of the component. Returns the same information as `getGroup()` and `getName()`.
    Returns:
      the module identifier
    Since:
      4.9