Package org.gradle.api
Interface PolymorphicDomainObjectContainer<T>
-
- Type Parameters:
T
- the (base) type of domain objects in the container
- All Superinterfaces:
Collection<T>
,org.gradle.util.Configurable<NamedDomainObjectContainer<T>>
,DomainObjectCollection<T>
,Iterable<T>
,NamedDomainObjectCollection<T>
,NamedDomainObjectContainer<T>
,NamedDomainObjectSet<T>
,Set<T>
- All Known Subinterfaces:
AuthenticationContainer
,ExtensiblePolymorphicDomainObjectContainer<T>
,NativeToolChainRegistry
,PlatformContainer
,PlayDistributionContainer
,PublicationContainer
,Repositories
,TaskContainer
@Incubating public interface PolymorphicDomainObjectContainer<T> extends NamedDomainObjectContainer<T>
ANamedDomainObjectContainer
that allows to create domain objects with different types.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <U extends T>
NamedDomainObjectContainer<U>containerWithType(Class<U> type)
Creates a regular container that wraps the polymorphic container presenting all elements of a specified type.<U extends T>
Ucreate(String name, Class<U> type)
Creates a domain object with the specified name and type, and adds it to the container.<U extends T>
Ucreate(String name, Class<U> type, Action<? super U> configuration)
Creates a domain object with the specified name and type, adds it to the container, and configures it with the specified action.<U extends T>
UmaybeCreate(String name, Class<U> type)
Looks for an item with the given name and type, creating and adding it to this container if it does not exist.-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Methods inherited from interface org.gradle.api.DomainObjectCollection
all, all, whenObjectAdded, whenObjectAdded, whenObjectRemoved, whenObjectRemoved, withType, withType
-
Methods inherited from interface org.gradle.api.NamedDomainObjectCollection
add, addAll, addRule, addRule, addRule, findByName, getAsMap, getAt, getByName, getByName, getByName, getNamer, getNames, getRules
-
Methods inherited from interface org.gradle.api.NamedDomainObjectContainer
configure, create, create, create, maybeCreate
-
Methods inherited from interface org.gradle.api.NamedDomainObjectSet
findAll, matching, matching, withType
-
-
-
-
Method Detail
-
create
<U extends T> U create(String name, Class<U> type) throws InvalidUserDataException
Creates a domain object with the specified name and type, and adds it to the container.- Type Parameters:
U
- the type of the domain object to be created- Parameters:
name
- the name of the domain object to be createdtype
- the type of the domain object to be created- Returns:
- the created domain object
- Throws:
InvalidUserDataException
- if a domain object with the specified name already exists or the container does not support creating a domain object with the specified type
-
maybeCreate
<U extends T> U maybeCreate(String name, Class<U> type) throws InvalidUserDataException
Looks for an item with the given name and type, creating and adding it to this container if it does not exist.- Type Parameters:
U
- the type of the domain object to be created- Parameters:
name
- the name of the domain object to be createdtype
- the type of the domain object to be created- Returns:
- the found or created domain object, never
null
. - Throws:
InvalidUserDataException
- if the container does not support creating a domain object with the specified typeClassCastException
- if a domain object with the specified name exists with a different type
-
create
<U extends T> U create(String name, Class<U> type, Action<? super U> configuration) throws InvalidUserDataException
Creates a domain object with the specified name and type, adds it to the container, and configures it with the specified action.- Type Parameters:
U
- the type of the domain object to be created- Parameters:
name
- the name of the domain object to be createdtype
- the type of the domain object to be createdconfiguration
- an action for configuring the domain object- Returns:
- the created domain object
- Throws:
InvalidUserDataException
- if a domain object with the specified name already exists or the container does not support creating a domain object with the specified type
-
containerWithType
<U extends T> NamedDomainObjectContainer<U> containerWithType(Class<U> type)
Creates a regular container that wraps the polymorphic container presenting all elements of a specified type.- Type Parameters:
U
- the type of the container elements- Parameters:
type
- the type of the container elements- Returns:
- a
NamedDomainObjectContainer
providing access to elements of type U.
-
-