# DslExtension.Builder

# Builder

```
@Incubating class Builder
```

|---|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                                                                                         ||
| ↳ | [com.android.build.api.variant.DslExtension.Builder](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension.Builder#) |

Creates a[Builder](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension.Builder#)to instance to create a[DslExtension](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension)containing all desired extension points to the Android Gradle Plugin DSL.

## Summary

|                                                                                                                                                                                                                                                                                               ### Public constructors                                                                                                                                                                                                                                                                                               ||
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| [<init>](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension.Builder#%3Cinit%3E(kotlin.String))`(`dslName:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`)` Creates a[Builder](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension.Builder#)to instance to create a[DslExtension](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension)containing all desired extension points to the Android Gradle Plugin DSL. |

|                                                                                                                                                                                                                                                                                                                                                 ### Public methods                                                                                                                                                                                                                                                                                                                                                 ||
|------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [DslExtension](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension)                  | [build](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension.Builder#build())`()` Builds the final[DslExtension](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension)instance that can be used with the[AndroidComponentsExtension.registerExtension](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/AndroidComponentsExtension#registerExtension(com.android.build.api.variant.DslExtension,%20kotlin.Function1))API |
| [DslExtension.Builder](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension.Builder#) | [extendBuildTypeWith](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension.Builder#extendBuildTypeWith(java.lang.Class))`(`typeExtension:` `[Class](http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html)<out` `[Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)>`)` Registers an extension point for the[com.android.build.api.dsl.BuildType](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/BuildType.html#)                             |
| [DslExtension.Builder](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension.Builder#) | [extendProductFlavorWith](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension.Builder#extendProductFlavorWith(java.lang.Class))`(`typeExtension:` `[Class](http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html)<out` `[Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)>`)` Registers an extension point for the[com.android.build.api.dsl.ProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/ProductFlavor.html#)             |
| [DslExtension.Builder](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension.Builder#) | [extendProjectWith](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension.Builder#extendProjectWith(java.lang.Class))`(`typeExtension:` `[Class](http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html)<out` `[Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)>`)` Registers an extension point for the module's DSL, it will be available under the android block.                                                                                                                  |

## Public constructors

### \<init\>

```
Builder(dslName: String)
```

Creates a[Builder](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension.Builder#)to instance to create a[DslExtension](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension)containing all desired extension points to the Android Gradle Plugin DSL.

|                                                                    Parameters                                                                    ||
|------------------------------------------------------------------------------------------|--------------------------------------------------------|
| dslName:[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | the extension point name as it appears in build files. |

## Public methods

### build

```
fun build(): DslExtension
```

Builds the final[DslExtension](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/DslExtension)instance that can be used with the[AndroidComponentsExtension.registerExtension](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/variant/AndroidComponentsExtension#registerExtension(com.android.build.api.variant.DslExtension,%20kotlin.Function1))API  

### extendBuildTypeWith

```
fun extendBuildTypeWith(typeExtension: Class<out Any>): DslExtension.Builder
```

Registers an extension point for the[com.android.build.api.dsl.BuildType](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/BuildType.html#)  

### extendProductFlavorWith

```
fun extendProductFlavorWith(typeExtension: Class<out Any>): DslExtension.Builder
```

Registers an extension point for the[com.android.build.api.dsl.ProductFlavor](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/ProductFlavor.html#)  

### extendProjectWith

```
fun extendProjectWith(typeExtension: Class<out Any>): DslExtension.Builder
```

Registers an extension point for the module's DSL, it will be available under the android block.