Package org.gradle.api.plugins
Interface ExtensionContainer
- All Known Subinterfaces:
Convention
public interface ExtensionContainer
Allows adding 'namespaced' DSL extensions to a target object.
-
Method Summary
Modifier and TypeMethodDescription<T> void
Adds a new extension to this container.void
Adds a new extension to this container.<T> void
Adds a new extension to this container.<T> void
Looks for the extension of the specified type and configures it with the supplied action.<T> void
Looks for the extension with the specified name and configures it with the supplied action.<T> void
Looks for the extension of the specified type and configures it with the supplied action.<T> T
create
(Class<T> publicType, String name, Class<? extends T> instanceType, Object... constructionArguments) Creates and adds a new extension to this container.<T> T
Creates and adds a new extension to this container.<T> T
create
(TypeOf<T> publicType, String name, Class<? extends T> instanceType, Object... constructionArguments) Creates and adds a new extension to this container.findByName
(String name) Looks for the extension of a given name.<T> T
findByType
(Class<T> type) Looks for the extension of a given type (useful to avoid casting).<T> T
findByType
(TypeOf<T> type) Looks for the extension of a given type (useful to avoid casting).Looks for the extension of a given name.<T> T
Looks for the extension of a given type (useful to avoid casting).<T> T
Looks for the extension of a given type (useful to avoid casting).Provides access to the schema of all known extensions.The extra properties extension in this extension container.
-
Method Details
-
add
Adds a new extension to this container. Adding an extension of name 'foo' will:- add 'foo' dynamic property
- add 'foo' dynamic method that accepts a closure that is a configuration script block
publicType
.- Parameters:
publicType
- The extension public typename
- The name for the extensionextension
- Any object implementingpublicType
- Throws:
IllegalArgumentException
- When an extension with the given name already exists.- Since:
- 3.5
-
add
Adds a new extension to this container. Adding an extension of name 'foo' will:- add 'foo' dynamic property
- add 'foo' dynamic method that accepts a closure that is a configuration script block
publicType
.- Parameters:
publicType
- The extension public typename
- The name for the extensionextension
- Any object implementingpublicType
- Throws:
IllegalArgumentException
- When an extension with the given name already exists.- Since:
- 3.5
-
add
Adds a new extension to this container. Adding an extension of name 'foo' will:- add 'foo' dynamic property
- add 'foo' dynamic method that accepts a closure that is a configuration script block
extension.getClass()
unless the extension itself declares a preferred public type via theHasPublicType
protocol.- Parameters:
name
- The name for the extensionextension
- Any object- Throws:
IllegalArgumentException
- When an extension with the given name already exists
-
create
<T> T create(Class<T> publicType, String name, Class<? extends T> instanceType, Object... constructionArguments) Creates and adds a new extension to this container. A new instance of the giveninstanceType
will be created using the givenconstructionArguments
. The extension will be exposed aspublicType
. The new instance will have been dynamically madeExtensionAware
, which means that you can cast it toExtensionAware
.- Type Parameters:
T
- the extension public type- Parameters:
publicType
- The extension public typename
- The name for the extensioninstanceType
- The extension instance typeconstructionArguments
- The arguments to be used to construct the extension instance- Returns:
- The created instance
- Throws:
IllegalArgumentException
- When an extension with the given name already exists.- Since:
- 3.5
- See Also:
-
create
<T> T create(TypeOf<T> publicType, String name, Class<? extends T> instanceType, Object... constructionArguments) Creates and adds a new extension to this container. A new instance of the giveninstanceType
will be created using the givenconstructionArguments
. The extension will be exposed aspublicType
. The new instance will have been dynamically madeExtensionAware
, which means that you can cast it toExtensionAware
.- Type Parameters:
T
- the extension public type- Parameters:
publicType
- The extension public typename
- The name for the extensioninstanceType
- The extension instance typeconstructionArguments
- The arguments to be used to construct the extension instance- Returns:
- The created instance
- Throws:
IllegalArgumentException
- When an extension with the given name already exists.- Since:
- 3.5
- See Also:
-
create
Creates and adds a new extension to this container. A new instance of the giventype
will be created using the givenconstructionArguments
. The extension will be exposed astype
unless the extension itself declares a preferred public type via theHasPublicType
protocol. The new instance will have been dynamically madeExtensionAware
, which means that you can cast it toExtensionAware
.- Parameters:
name
- The name for the extensiontype
- The type of the extensionconstructionArguments
- The arguments to be used to construct the extension instance- Returns:
- The created instance
- Throws:
IllegalArgumentException
- When an extension with the given name already exists.- See Also:
-
getExtensionsSchema
ExtensionsSchema getExtensionsSchema()Provides access to the schema of all known extensions.- Since:
- 4.5
-
getByType
Looks for the extension of a given type (useful to avoid casting). If none found it will throw an exception.- Parameters:
type
- extension type- Returns:
- extension, never null
- Throws:
UnknownDomainObjectException
- When the given extension is not found.
-
getByType
Looks for the extension of a given type (useful to avoid casting). If none found it will throw an exception.- Parameters:
type
- extension type- Returns:
- extension, never null
- Throws:
UnknownDomainObjectException
- When the given extension is not found.- Since:
- 3.5
-
findByType
Looks for the extension of a given type (useful to avoid casting). If none found null is returned.- Parameters:
type
- extension type- Returns:
- extension or null
-
findByType
Looks for the extension of a given type (useful to avoid casting). If none found null is returned.- Parameters:
type
- extension type- Returns:
- extension or null
- Since:
- 3.5
-
getByName
Looks for the extension of a given name. If none found it will throw an exception.- Parameters:
name
- extension name- Returns:
- extension, never null
- Throws:
UnknownDomainObjectException
- When the given extension is not found.
-
findByName
Looks for the extension of a given name. If none found null is returned.- Parameters:
name
- extension name- Returns:
- extension or null
-
configure
Looks for the extension of the specified type and configures it with the supplied action.- Parameters:
type
- extension typeaction
- the configure action- Throws:
UnknownDomainObjectException
- if no extension is found.
-
configure
Looks for the extension of the specified type and configures it with the supplied action.- Parameters:
type
- extension typeaction
- the configure action- Throws:
UnknownDomainObjectException
- if no extension is found.- Since:
- 3.5
-
configure
Looks for the extension with the specified name and configures it with the supplied action.- Parameters:
name
- extension nameaction
- the configure action- Throws:
UnknownDomainObjectException
- if no extension is found.- Since:
- 4.0
-
getExtraProperties
ExtraPropertiesExtension getExtraProperties()The extra properties extension in this extension container. This extension is always present in the container, with the name “ext”.- Returns:
- The extra properties extension in this extension container.
-