# 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 [AndroidComponentsExtension.beforeVariants](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/AndroidComponentsExtension#beforeVariants(com.android.build.api.variant.VariantSelector,kotlin.Function1)).

## Summary

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

| Returns |
|---|---|
| [VariantSelector](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/VariantSelector) | a [VariantSelector](https://developer.android.com/reference/tools/gradle-api/9.1/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 [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/ComponentIdentity) objects with a given build type.  

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

| Returns |
|---|---|
| [VariantSelector](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/VariantSelector) | An instance of [VariantSelector](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/VariantSelector) to further filter variants. |

### withFlavor

Added in 7.0.0  

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

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

| Parameters |
|---|---|
| `flavorToDimension: `[Pair](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html)`<`[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`, `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>` | Dimension and flavor to filter [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/ComponentIdentity) on. |

| Returns |
|---|---|
| [VariantSelector](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/VariantSelector) | [VariantSelector](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/VariantSelector) instance to further filter instances of [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/ComponentIdentity) |

### withFlavor

Added in 8.1.0  

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

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

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

| Returns |
|---|---|
| [VariantSelector](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/VariantSelector) | [VariantSelector](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/VariantSelector) instance to further filter instances of [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/ComponentIdentity) |

### withName

Added in 7.0.0  

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

Returns a new selector for [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/ComponentIdentity) objects with a given name.  

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

### withName

Added in 7.0.0  

```
fun withName(pattern: Pattern): VariantSelector
```

Returns a new selector for [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/9.1/com/android/build/api/variant/ComponentIdentity) objects with a given name pattern.  

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