# DslExtension

# DslExtension

[View Source](https://cs.android.com/search?q=file:com/android/build/api/variant/DslExtension.kt+class:com.android.build.api.variant.DslExtension)  
Added in 7.0.0  


```
@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.4/com/android/build/api/variant/DslExtension.Builder) like [Builder.extendBuildTypeWith](https://developer.android.com/reference/tools/gradle-api/8.4/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.4/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                                                                                                                                                                                                                                                                                            |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) `class `[DslExtension.Builder](https://developer.android.com/reference/tools/gradle-api/8.4/com/android/build/api/variant/DslExtension.Builder) Creates a [Builder](https://developer.android.com/reference/tools/gradle-api/8.4/com/android/build/api/variant/DslExtension.Builder) to instance to create a [DslExtension](https://developer.android.com/reference/tools/gradle-api/8.4/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.4/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.4/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.4/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.4/com/android/build/api/variant/DslExtension#projectExtensionType())             |

## Public properties

### buildTypeExtensionType

Added in 7.0.0  

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

### dslName

Added in 7.0.0  

```
val dslName: String
```  

### productFlavorExtensionType

Added in 7.0.0  

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

### projectExtensionType

Added in 7.0.0  

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