# Interface VariantComponent

All Superinterfaces:
  `ModelElement, Named`

All Known Subinterfaces:
  `ApplicationSpec, CUnitTestSuiteSpec, GeneralComponentSpec, GoogleTestTestSuiteSpec, JUnitTestSuiteSpec, JvmLibrarySpec, JvmTestSuiteSpec, LibrarySpec, NativeExecutableSpec, NativeLibrarySpec, NativeTestSuiteSpec, PlatformAwareComponentSpec, PlayApplicationSpec, PlayPlatformAwareComponentSpec, 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.