# Interface VariantComponent

All Superinterfaces:
  `ModelElement, Named`

All Known Subinterfaces:
  `ApplicationSpec, CUnitTestSuiteSpec, GeneralComponentSpec, GoogleTestTestSuiteSpec, LibrarySpec, NativeExecutableSpec, NativeLibrarySpec, NativeTestSuiteSpec, PlatformAwareComponentSpec, TargetedNativeComponent, TestSuiteSpec, VariantComponentSpec`

All Known Implementing Classes:
  `BaseComponentSpec`

@Incubating public interface VariantComponent extends ModelElement
A component that has one or more mutually exclusive variants.

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getName()`
  Returns the name of this element.
  `Iterable<? extends Binary>`
  `getVariants()`
  The variants of this component.

  ### Methods inherited from interface ModelElement

  `getDisplayName`

- ## Method Details

  - ### getVariants

    Iterable<? extends Binary> getVariants()
    The variants of this component.

  - ### getName

    String getName()
    Description copied from interface: `ModelElement`
    Returns the name of this element. Each element has a name associated with it, that uniquely identifies the element amongst its siblings. Some element have their name generated or automatically assigned, and for these elements the name may not be human consumable.
    Specified by:
      `getName` in interface `ModelElement`
    Specified by:
      `getName` in interface `Named`
    Returns:
      The name. Never null.