# VariantSelector

# VariantSelector

```
interface VariantSelector
```

|--------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [com.android.build.api.variant.VariantSelector](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/VariantSelector#) |

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/7.1/com/android/build/api/variant/AndroidComponentsExtension#beforeVariants(com.android.build.api.variant.VariantSelector,%20kotlin.Function1)).

## Summary

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

## Public methods

### all

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

Creates a [VariantSelector](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/VariantSelector#) of [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ComponentIdentity) that includes all the variants for the
current module.

| Return ||
|---|---|
| a [VariantSelector](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/VariantSelector#) for all variants. ||

### withBuildType

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

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

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

### withFlavor

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

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

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

### withName

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

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

|                                                                                                                                                                                                                            Parameters                                                                                                                                                                                                                            ||
|-------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| pattern: [Pattern](http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html) | [Pattern](http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html) 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/7.1/com/android/build/api/variant/ComponentIdentity) instances on |

### withName

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

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