NamedDomainObjectContainer

命名领域对象容器是 NamedDomainObjectSet 的一种特殊化,它增加了创建元素类型实例的能力。

实现可能使用不同的策略来创建新的对象实例。

请注意,容器是 SortedSet 的实现,这意味着容器保证只包含在此容器中具有唯一名称的元素。此外,项目按其名称排序。

您可以使用工厂方法 ObjectFactory.domainObjectContainer(java.lang.Class) 创建此类型的实例。

属性

无属性

方法

方法描述
create(name)

创建具有给定名称的新项,并将其添加到此容器中。

create(name, configureClosure)

创建具有给定名称的新项,并将其添加到此容器中,然后使用给定的闭包对其进行配置。

create(name, configureAction)

创建具有给定名称的新项,并将其添加到此容器中,然后使用给定的操作对其进行配置。

getByName(name)

按名称查找对象,如果不存在此类对象则失败。

getByName(name, configureClosure)

按名称查找对象,如果不存在此类对象则失败。在从该方法返回对象之前,将针对该对象执行给定的配置闭包。该对象作为其委托传递给闭包。

getByName(name, configureAction)

按名称查找对象,如果不存在此类对象则失败。在从该方法返回对象之前,将针对该对象执行给定的配置操作。

maybeCreate(name)

查找具有给定名称的项,如果不存在则创建并将其添加到此容器中。

named(name)

按名称查找对象,如果不存在此类对象则失败。

named(name, type)

按名称和类型查找对象,如果不存在此类对象则失败。

named(name, type, configurationAction)

按名称和类型查找对象,如果不存在此类对象则失败。在从提供者返回对象之前,将针对该对象执行给定的配置操作。

named(name, configurationAction)

按名称查找对象,如果不存在此类对象则失败。在从提供者返回对象之前,将针对该对象执行给定的配置操作。

named(nameFilter)
孵化中

返回一个集合,其中包含名称与提供的过滤器匹配的对象。返回的集合是动态的,因此当匹配的对象添加到此集合时,它们在过滤后的集合中也是可见的。

register(name)

定义一个新对象,该对象将在需要时创建。当使用查询方法(例如 NamedDomainObjectCollection.getByName(java.lang.String))定位对象时,或者当对该方法的返回值调用 Provider.get() 时,该对象是“必需的”。

register(name, configurationAction)

定义一个新对象,该对象将在需要时创建和配置。当使用查询方法(例如 NamedDomainObjectCollection.getByName(java.lang.String))定位对象时,或者当对该方法的返回值调用 Provider.get() 时,该对象是“必需的”。

脚本块

无脚本块

方法详情

T create(String name)

创建具有给定名称的新项,并将其添加到此容器中。

此操作是即时执行的(eager),元素在返回之前即已实例化(realized)。

T create(String name, Closure configureClosure)

创建具有给定名称的新项,并将其添加到此容器中,然后使用给定的闭包对其进行配置。

此操作是即时执行的(eager),元素在返回之前即已实例化(realized)。

T create(String name, Action<? super T> configureAction)

创建具有给定名称的新项,并将其添加到此容器中,然后使用给定的操作对其进行配置。

此操作是即时执行的(eager),元素在返回之前即已实例化(realized)。

T getByName(String name)

按名称查找对象,如果不存在此类对象则失败。

此操作是即时执行的(eager),将导致返回的元素被实例化(realized)。

T getByName(String name, Closure configureClosure)

按名称查找对象,如果不存在此类对象则失败。在从该方法返回对象之前,将针对该对象执行给定的配置闭包。该对象作为其委托传递给闭包。

此操作是即时执行的(eager),将导致返回的元素被实例化(realized)。

T getByName(String name, Action<? super T> configureAction)

按名称查找对象,如果不存在此类对象则失败。在从该方法返回对象之前,将针对该对象执行给定的配置操作。

此操作是即时执行的(eager),将导致返回的元素被实例化(realized)。

T maybeCreate(String name)

查找具有给定名称的项,如果不存在则创建并将其添加到此容器中。

此操作是即时执行的(eager),元素在返回之前即已实例化(realized)。

按名称查找对象,如果不存在此类对象则失败。

此方法是延迟执行的(lazy),不会导致返回的元素被实例化(realized)。

NamedDomainObjectProvider<S> named(String name, Class<S> type)

按名称和类型查找对象,如果不存在此类对象则失败。

此方法是延迟执行的(lazy),不会导致返回的元素被实例化(realized)。

NamedDomainObjectProvider<S> named(String name, Class<S> type, Action<? super S> configurationAction)

按名称和类型查找对象,如果不存在此类对象则失败。在从提供者返回对象之前,将针对该对象执行给定的配置操作。

此方法是延迟执行的(lazy),不会导致返回的元素被实例化(realized)。

NamedDomainObjectProvider<T> named(String name, Action<? super T> configurationAction)

按名称查找对象,如果不存在此类对象则失败。在从提供者返回对象之前,将针对该对象执行给定的配置操作。

此方法是延迟执行的(lazy),不会导致返回的元素被实例化(realized)。

注意:此方法处于孵化中,未来版本的 Gradle 中可能会发生变化。

返回一个集合,其中包含名称与提供的过滤器匹配的对象。返回的集合是动态的,因此当匹配的对象添加到此集合时,它们在过滤后的集合中也是可见的。

此方法是一个中间操作。它不会改变集合中元素的实例化/未实例化状态。

定义一个新对象,该对象将在需要时创建。当使用查询方法(例如 NamedDomainObjectCollection.getByName(java.lang.String))定位对象时,或者当对该方法的返回值调用 Provider.get() 时,该对象是“必需的”。

通常使用此方法比使用 NamedDomainObjectContainer.create(java.lang.String) 更有效,因为后者会即时(eagerly)创建对象,无论当前构建是否需要该对象。而此方法则会延迟创建,直到需要时才创建。

此操作是延迟执行的(lazy),返回的元素不会被实例化(realized)。将返回一个 NamedDomainObjectProvider,允许继续将其与其他延迟执行的 API 一起使用。

NamedDomainObjectProvider<T> register(String name, Action<? super T> configurationAction)

定义一个新对象,该对象将在需要时创建和配置。当使用查询方法(例如 NamedDomainObjectCollection.getByName(java.lang.String))定位对象时,或者当对该方法的返回值调用 Provider.get() 时,该对象是“必需的”。

通常使用此方法比使用 NamedDomainObjectContainer.create(java.lang.String, org.gradle.api.Action)NamedDomainObjectContainer.create(java.lang.String) 更有效,因为这些方法会即时(eagerly)创建和配置对象,无论当前构建是否需要该对象。而此方法则会延迟创建和配置,直到需要时才进行。

此操作是延迟执行的(lazy),返回的元素不会被实例化(realized)。将返回一个 NamedDomainObjectProvider,允许继续将其与其他延迟执行的 API 一起使用。