# VariantSelector

# VariantSelector

<br />

```
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/8.2/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/8.2/com/android/build/api/variant/VariantSelector) | [all](https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/variant/VariantSelector#all())`()` Creates a[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/variant/VariantSelector)of[ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/variant/ComponentIdentity)that includes all the variants for the current module.                                                                                                                                                                            |
| [VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/variant/VariantSelector) | [withBuildType](https://developer.android.com/reference/tools/gradle-api/8.2/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/8.2/com/android/build/api/variant/ComponentIdentity)objects with a given build type.                                                                                                                                                                                  |
| [VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/variant/VariantSelector) | [withFlavor](https://developer.android.com/reference/tools/gradle-api/8.2/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/8.2/com/android/build/api/variant/ComponentIdentity)objects with a given (dimension, flavorName). |
| [VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/variant/VariantSelector) | [withFlavor](https://developer.android.com/reference/tools/gradle-api/8.2/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/8.2/com/android/build/api/variant/ComponentIdentity)objects with a given (flavorName).                                                                        |
| [VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/variant/VariantSelector) | [withName](https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/variant/VariantSelector#withName(java.util.regex.Pattern))`(pattern: `[Pattern](https://developer.android.com/reference/tools/gradle-api/8.2/java/util/regex/Pattern)`)` Returns a new selector for[ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/variant/ComponentIdentity)objects with a given name pattern.                                                                                                                                                                   |
| [VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/variant/VariantSelector) | [withName](https://developer.android.com/reference/tools/gradle-api/8.2/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/8.2/com/android/build/api/variant/ComponentIdentity)objects with a given name.                                                                                                                                                                                                       |

## Public functions

### all

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

Creates a[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/variant/VariantSelector)of[ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.2/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/8.2/com/android/build/api/variant/VariantSelector) | a[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/variant/VariantSelector)for all variants. |

### withBuildType

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

Returns a new selector for[ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.2/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/8.2/com/android/build/api/variant/ComponentIdentity)on. |

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

### withFlavor

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

Returns a new selector for[ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.2/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/8.2/com/android/build/api/variant/ComponentIdentity)on. |

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

### withFlavor

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

Returns a new selector for[ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.2/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/8.2/com/android/build/api/variant/ComponentIdentity)on. |

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

### withName

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

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

|                                                                                                                                                                                                                                         Parameters                                                                                                                                                                                                                                          ||
|------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `pattern: `[Pattern](https://developer.android.com/reference/tools/gradle-api/8.2/java/util/regex/Pattern) | [Pattern](https://developer.android.com/reference/tools/gradle-api/8.2/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/8.2/com/android/build/api/variant/ComponentIdentity)instances on |

### withName

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

Returns a new selector for[ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.2/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. |