Overview | Package | Class | Deprecated | Index | Help
| Groovy Documentation
| FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | METHOD | DETAIL: FIELD | METHOD

## org.gradle.api
[Java] Interface NamedDomainObjectContainer

    org.gradle.api.NamedDomainObjectCollection
      org.gradle.api.NamedDomainObjectContainer
          org.gradle.api.NamedDomainObjectSet
              java.lang.Iterable
                  org.gradle.api.DomainObjectCollection
                      java.util.Collection
                          org.gradle.util.Configurable

All Superinterfaces:
  NamedDomainObjectCollection, NamedDomainObjectSet, Iterable, DomainObjectCollection, Collection, Configurable

    public interface NamedDomainObjectContainer
    extends Configurable, NamedDomainObjectSet

A named domain object container is a specialisation of NamedDomainObjectSet that adds the ability to create instances of the element type.

Implementations may use different strategies for creating new object instances.

Note that a container is an implementation of SortedSet, which means that the container is guaranteed to only contain elements with unique names within this container. Furthermore, items are ordered by their name.

Parameters:
  `` - The type of domain objects in this container.

See Also:
  NamedDomainObjectSet

Method Summary
`NamedDomainObjectContainer` | `configure(Closure configureClosure)`
`Object` | `create(String name)` Creates a new item with the given name, adding it to this container.
`Object` | `create(String name, Closure configureClosure)` Creates a new item with the given name, adding it to this container, then configuring it with the given closure.

Methods inherited from interface NamedDomainObjectSet
findAll, matching, matching, withType

Method Detail

### configure

    public NamedDomainObjectContainer configure(Closure configureClosure)

  Allows the container to be configured, creating missing objects as they are referenced.

  TODO: example usage

  Parameters:
    `configureClosure` - The closure to configure this container with
  Returns:
    This.

### create

    public Object create(String name)

  Creates a new item with the given name, adding it to this container.
  throws:
    InvalidUserDataException if an object with the given name already exists in this container.
  Parameters:
    `name` - The name to assign to the created object
  Returns:
    The created object. Never null.

### create

    public Object create(String name, Closure configureClosure)

  Creates a new item with the given name, adding it to this container, then configuring it with the given closure.
  throws:
    InvalidUserDataException if an object with the given name already exists in this container.
  Parameters:
    `name` - The name to assign to the created object
    `configureClosure` - The closure to configure the created object with
  Returns:
    The created object. Never null.

Gradle API 1.1-rc-1