# VariantSelector

# VariantSelector


```
public 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.3/null/com/android/build/api/variant/AndroidComponentsExtension#beforeVariants(com.android.build.api.variant.VariantSelector,kotlin.Function1)).

## Summary

|                                                                                                                    ### Public methods                                                                                                                     |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) | [all](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector#all())`()` Creates a [VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) of [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) that includes all the variants for the current module.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) | [withBuildType](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector#withBuildType(kotlin.String))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` buildType)` Returns a new selector for [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) objects with a given build type.                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) | [withFlavor](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector#withFlavor(kotlin.Pair))`(` ` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Pair](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`, @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`> flavorToDimension` `)` Returns a new selector for [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) objects with a given (dimension, flavorName). |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) | [withFlavor](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector#withFlavor(kotlin.String,kotlin.String))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` dimension, @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` flavorName)` Returns a new selector for [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) objects with a given (flavorName).                                                                                                                                                                                            |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) | [withName](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector#withName(kotlin.String))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` name)` Returns a new selector for [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) objects with a given name.                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) | [withName](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector#withName(java.util.regex.Pattern))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Pattern](https://developer.android.com/reference/tools/gradle-api/8.3/null/java/util/regex/Pattern)` pattern)` Returns a new selector for [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) objects with a given name pattern.                                                                                                                                                                                                                                                                                                                                                                                                                     |

## Public methods

### all

```
abstract @NonNull VariantSelector all()
```

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

|                                                                                                                     Returns                                                                                                                      |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) | a [VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) for all variants. |

### withBuildType

```
abstract @NonNull VariantSelector withBuildType(@NonNull String buildType)
```

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

|                                                                                                       Parameters                                                                                                       |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` buildType` | Build type to filter [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) on. |

|                                                                                                                     Returns                                                                                                                      |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) | An instance of [VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) to further filter variants. |

### withFlavor

```
abstract @NonNull VariantSelector withFlavor(
    @NonNull Pair<@NonNull String, @NonNull String> flavorToDimension
)
```

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

|                                                                                                                                                                                                                                                                                                               Parameters                                                                                                                                                                                                                                                                                                               |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Pair](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`, @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`> flavorToDimension` | Dimension and flavor to filter [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) on. |

|                                                                                                                     Returns                                                                                                                      |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) | [VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) instance to further filter instances of [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) |

### withFlavor

```
abstract @NonNull VariantSelector withFlavor(@NonNull String dimension, @NonNull String flavorName)
```

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

|                                                                                                       Parameters                                                                                                        |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` dimension`  | dimension name                                                                                                                                                   |
| `@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` flavorName` | flavor name to filter [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) on. |

|                                                                                                                     Returns                                                                                                                      |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) | [VariantSelector](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantSelector) instance to further filter instances of [ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) |

### withName

```
abstract @NonNull VariantSelector withName(@NonNull String name)
```

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

|                                                                                                    Parameters                                                                                                     |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` name` | [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

```
abstract @NonNull VariantSelector withName(@NonNull Pattern pattern)
```

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

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