org.gradle.api
Interface NamedDomainObjectContainer<T>

Type Parameters:
T - The type of domain objects in this container.
All Superinterfaces:
Collection<T>, org.gradle.util.Configurable<NamedDomainObjectContainer<T>>, DomainObjectCollection<T>, Iterable<T>, NamedDomainObjectCollection<T>, NamedDomainObjectSet<T>, Set<T>
All Known Subinterfaces:
ConfigurationContainer, SourceSetContainer, TaskContainer

public interface NamedDomainObjectContainer<T>
extends NamedDomainObjectSet<T>, org.gradle.util.Configurable<NamedDomainObjectContainer<T>>

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.

See Also:
NamedDomainObjectSet

Method Summary
 NamedDomainObjectContainer<T> configure(Closure configureClosure)
          Allows the container to be configured, creating missing objects as they are referenced.
 T create(String name)
          Creates a new item with the given name, adding it to this container.
 T 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 org.gradle.api.NamedDomainObjectSet
findAll, matching, matching, withType
 
Methods inherited from interface org.gradle.api.NamedDomainObjectCollection
add, addAll, addRule, addRule, findByName, getAsMap, getAt, getByName, getByName, getNamer, getRules
 
Methods inherited from interface org.gradle.api.DomainObjectCollection
all, all, allObjects, allObjects, findAll, getAll, whenObjectAdded, whenObjectAdded, whenObjectRemoved, whenObjectRemoved, withType, withType
 
Methods inherited from interface java.util.Collection
clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 
Methods inherited from interface java.util.Set
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 

Method Detail

create

T create(String name)
         throws InvalidUserDataException
Creates a new item with the given name, adding it to this container.

Parameters:
name - The name to assign to the created object
Returns:
The created object. Never null.
Throws:
InvalidUserDataException - if an object with the given name already exists in this container.

create

T create(String name,
         Closure configureClosure)
         throws InvalidUserDataException
Creates a new item with the given name, adding it to this container, then configuring it with the given closure.

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.
Throws:
InvalidUserDataException - if an object with the given name already exists in this container.

configure

NamedDomainObjectContainer<T> configure(Closure configureClosure)

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

TODO: example usage

Specified by:
configure in interface org.gradle.util.Configurable<NamedDomainObjectContainer<T>>
Parameters:
configureClosure - The closure to configure this container with
Returns:
This.