# VariantSelector

[View Source](https://cs.android.com/search?q=file:com/android/build/api/variant/VariantSelector.kt+class:com.android.build.api.variant.VariantSelector) Added in 7.0.0


```
interface VariantSelector
```

<br />

*** ** * ** ***

Selector to reduce the number of variants that are of interests when calling any of the variant API like `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/AndroidComponentsExtension#beforeVariants(com.android.build.api.variant.VariantSelector,kotlin.Function1)`.

## Summary

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector#all()()` Creates a `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` of `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` that includes all the variants for the current module. |
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector#withBuildType(kotlin.String)(buildType: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` Returns a new selector for `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` objects with a given build type. |
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector#withFlavor(kotlin.Pair)(dimensionToFlavor: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>)` Returns a new selector for `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` objects with a given (dimension, flavorName). |
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector#withFlavor(kotlin.String,kotlin.String)(dimension: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, flavorName: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` Returns a new selector for `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` objects with a given (flavorName). |
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector#withName(kotlin.String)(name: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` Returns a new selector for `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` objects with a given name. |
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector#withName(java.util.regex.Pattern)(pattern: java.util.regex.Pattern)` Returns a new selector for `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` objects with a given name pattern. |

## Public functions

### all

Added in 7.0.0

```
fun all(): VariantSelector
```

Creates a `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` of `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` that includes all the variants for the current module.

| Returns |
|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` | a `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` for all variants. |

### withBuildType

Added in 7.0.0

```
fun withBuildType(buildType: String): VariantSelector
```

Returns a new selector for `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` objects with a given build type.

| Parameters |
|---|---|
| `buildType: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | Build type to filter `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` on. |

| Returns |
|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` | An instance of `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` to further filter variants. |

### withFlavor

Added in 7.0.0

```
fun withFlavor(dimensionToFlavor: Pair<String, String>): VariantSelector
```

Returns a new selector for `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` objects with a given (dimension, flavorName).

| Parameters |
|---|---|
| `dimensionToFlavor: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` | Dimension and flavor to filter `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` on. |

| Returns |
|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` instance to further filter instances of `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` |

### withFlavor

Added in 8.1.0

```
fun withFlavor(dimension: String, flavorName: String): VariantSelector
```

Returns a new selector for `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` objects with a given (flavorName).

| Parameters |
|---|---|
| `dimension: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | dimension name |
| `flavorName: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | flavor name to filter `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` on. |

| Returns |
|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantSelector` instance to further filter instances of `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` |

### withName

Added in 7.0.0

```
fun withName(name: String): VariantSelector
```

Returns a new selector for `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` objects with a given name.

| Parameters |
|---|---|
| `name: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` to test against the `https://docs.gradle.org/current/javadoc/org/gradle/api/Named.html#getName--` for equality. |

### withName

Added in 7.0.0

```
fun withName(pattern: java.util.regex.Pattern): VariantSelector
```

Returns a new selector for `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` objects with a given name pattern.

| Parameters |
|---|---|
| `pattern: java.util.regex.Pattern` | to apply on the `https://docs.gradle.org/current/javadoc/org/gradle/api/Named.html#getName--` to filter `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity` instances on |