org.gradle.api.plugins
Interface ExtensionContainer

All Known Subinterfaces:
Convention

public interface ExtensionContainer

Allows adding 'namespaced' DSL extensions to a target object.


Method Summary
 void add(String name, Class<?> type, Object... constructionArguments)
          Deprecated. use create(java.lang.String, java.lang.Class, java.lang.Object...)
 void add(String name, Object extension)
          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
<T> T
create(String name, Class<T> type, Object... constructionArguments)
          Adds a new extension to this container, that itself is dynamically made ExtensionAware.
 Object 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).
 Object getByName(String name)
          Looks for the extension of a given name.
<T> T
getByType(Class<T> type)
          Looks for the extension of a given type (useful to avoid casting).
 ExtraPropertiesExtension getExtraProperties()
          The extra properties extension in this extension container.
 

Method Detail

add

void add(String name,
         Object extension)
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

    Parameters:
    name - Will be used as a sort of namespace of properties/methods.
    extension - Any object whose methods and properties will extend the target object

  • add

    @Deprecated
    void add(String name,
                        Class<?> type,
                        Object... constructionArguments)
    Deprecated. use create(java.lang.String, java.lang.Class, java.lang.Object...)

    Deprecated. Use create(java.lang.String, java.lang.Class, java.lang.Object...)

    Parameters:
    name - The name for the extension
    type - The type of the extension
    constructionArguments - The arguments to be used to construct the extension instance

    create

    <T> T create(String name,
                 Class<T> type,
                 Object... constructionArguments)
    Adds a new extension to this container, that itself is dynamically made ExtensionAware. A new instance of the given type will be created using the given constructionArguments. The new instance will have been dynamically which means that you can cast the object to ExtensionAware.

    Parameters:
    name - The name for the extension
    type - The type of the extension
    constructionArguments - The arguments to be used to construct the extension instance
    Returns:
    The created instance
    See Also:
    add(String, Object)

    getByType

    <T> T getByType(Class<T> type)
                throws UnknownDomainObjectException
    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.

    findByType

    <T> T findByType(Class<T> type)
    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

    getByName

    Object getByName(String name)
                     throws UnknownDomainObjectException
    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

    Object findByName(String name)
    Looks for the extension of a given name. If none found null is returned.

    Parameters:
    name - extension name
    Returns:
    extension or null

    getExtraProperties

    ExtraPropertiesExtension getExtraProperties()
    The extra properties extension in this extension container. This extension is always present in the container, with the name .

    Returns:
    The extra properties extension in this extension container.