# DslExtension

# DslExtension

<br />

```
@Incubating
public final 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.3/null/com/android/build/api/variant/DslExtension.Builder)like[Builder.extendBuildTypeWith](https://developer.android.com/reference/tools/gradle-api/8.3/null/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.3/null/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) `public final class `[DslExtension.Builder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DslExtension.Builder) Creates a[Builder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DslExtension.Builder)to instance to create a[DslExtension](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DslExtension)containing all desired extension points to the Android Gradle Plugin DSL. |

|                                                                                                                                                ### Public methods                                                                                                                                                |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `final `[Class](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Object](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html)`>` | [getBuildTypeExtensionType](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DslExtension#getBuildTypeExtensionType())`()`         |
| `final @`[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)                                                                                                 | [getDslName](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DslExtension#getDslName())`()`                                       |
| `final `[Class](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Object](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html)`>` | [getProductFlavorExtensionType](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DslExtension#getProductFlavorExtensionType())`()` |
| `final `[Class](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Object](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html)`>` | [getProjectExtensionType](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DslExtension#getProjectExtensionType())`()`             |

## Public methods

### getBuildTypeExtensionType

```
public final Class<@NonNull Object> getBuildTypeExtensionType()
```  

### getDslName

```
public final @NonNull String getDslName()
```  

### getProductFlavorExtensionType

```
public final Class<@NonNull Object> getProductFlavorExtensionType()
```  

### getProjectExtensionType

```
public final Class<@NonNull Object> getProjectExtensionType()
```