# DslExtension

# DslExtension

<br />

```
@Incubating class DslExtension
```

<br />

*** ** * ** ***

Third party DSL extension configuration.

When a third party plugins needs to extend the Android Gradle Plugin DSL, it needs to indicate the location of these extension elements.

Currently, we support extending :

- \[com.android.build.api.dsl.DefaultConfig\]
- \[com.android.build.api.dsl.BuildType\]
- \[com.android.build.api.dsl.ProductFlavor\]

A plugin can choose to extend one or more of these elements by calling the appropriate methods on the[Builder](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/variant/DslExtension.Builder)like[Builder.extendBuildTypeWith](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/variant/DslExtension.Builder#extendBuildTypeWith(java.lang.Class))to extend[com.android.build.api.dsl.BuildType](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/dsl/BuildType).

Because the number of instances of each extension point is determined during evaluation phase, Gradle will be creating those instances on demand. See full documentation at : https://docs.gradle.org/current/userguide/custom_plugins.html#sec:getting_input_from_the_build

## Summary

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

|                                                                                                                                                              ### Public properties                                                                                                                                                              ||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Class](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html)`<`[Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)`>?` | [buildTypeExtensionType](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/variant/DslExtension#buildTypeExtensionType())         |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)                                                                                            | [dslName](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/variant/DslExtension#dslName())                                       |
| [Class](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html)`<`[Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)`>?` | [productFlavorExtensionType](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/variant/DslExtension#productFlavorExtensionType()) |
| [Class](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html)`<`[Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)`>?` | [projectExtensionType](https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/variant/DslExtension#projectExtensionType())             |

## Public properties

### buildTypeExtensionType

```
val buildTypeExtensionType: Class<Any>?
```  

### dslName

```
val dslName: String
```  

### productFlavorExtensionType

```
val productFlavorExtensionType: Class<Any>?
```  

### projectExtensionType

```
val projectExtensionType: Class<Any>?
```