命名域对象容器是 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) | 定义一个新对象,该对象将在需要时创建。当使用查询方法(如 |
register(name, configurationAction) | 定义一个新对象,该对象将在需要时创建和配置。当使用查询方法(如 |
使用给定名称创建一个新项,并将其添加到此容器中,然后使用给定的闭包对其进行配置。
此操作是急切的,元素在返回之前被实现。
使用给定名称创建一个新项,并将其添加到此容器中,然后使用给定的动作对其进行配置。
此操作是急切的,元素在返回之前被实现。
按名称查找对象,如果不存在此类对象,则失败。给定的配置闭包在对象由此方法返回之前针对对象执行。对象作为其委托传递给闭包。
此操作是急切的,并将导致返回的元素被实现。
按名称查找对象,如果不存在此类对象,则失败。给定的配置操作在对象由此方法返回之前针对对象执行。
此操作是急切的,并将导致返回的元素被实现。
NamedDomainObjectProvider<S> named(String name, Class<S> type)
NamedDomainObjectProvider<S>Class<S>按名称和类型查找对象,如果不存在此类对象,则失败。
此方法是惰性的,不会导致返回的元素被实现。
NamedDomainObjectProvider<S> named(String name, Class<S> type, Action<? super S> configurationAction)
NamedDomainObjectProvider<S>Class<S>Action<? super S>按名称和类型查找对象,如果不存在此类对象,则失败。给定的配置操作在对象从提供者返回之前针对对象执行。
此方法是惰性的,不会导致返回的元素被实现。
NamedDomainObjectProvider<T> named(String name, Action<? super T> configurationAction)
NamedDomainObjectProvider<T>Action<? super T>按名称查找对象,如果不存在此类对象,则失败。给定的配置操作在对象从提供者返回之前针对对象执行。
此方法是惰性的,不会导致返回的元素被实现。
NamedDomainObjectCollection<T> named(Spec<String> nameFilter)
NamedDomainObjectCollection<T>Spec<String>注意:此方法处于孵化中,可能会在 Gradle 的未来版本中更改。
返回一个包含名称与所提供过滤器匹配的对象的集合。返回的集合是实时的,因此当匹配的对象添加到此集合时,它们也会在过滤后的集合中可见。
此方法是一个中间操作。它不改变集合中元素的已实现/未实现状态。
NamedDomainObjectProvider<T> register(String name)
NamedDomainObjectProvider<T>定义一个新对象,该对象将在需要时创建。当使用查询方法(如 NamedDomainObjectCollection.getByName(java.lang.String))定位对象时,或当在此方法的返回值上调用 Provider.get() 时,该对象是“必需的”。
通常,使用此方法比使用 NamedDomainObjectContainer.create(java.lang.String) 更高效,因为该方法会急切地创建对象,无论该对象是否是当前构建所需的。而此方法将延迟创建,直到需要时才创建。
此操作是延迟的,返回的元素未实例化。返回一个 NamedDomainObjectProvider,允许继续将其与其他延迟 API 一起使用。
NamedDomainObjectProvider<T> register(String name, Action<? super T> configurationAction)
NamedDomainObjectProvider<T>Action<? super T>定义一个新对象,该对象将在需要时创建和配置。当使用查询方法(如 NamedDomainObjectCollection.getByName(java.lang.String))定位对象时,或当在此方法的返回值上调用 Provider.get() 时,该对象是“必需的”。
通常,使用此方法比使用 NamedDomainObjectContainer.create(java.lang.String, org.gradle.api.Action) 或 NamedDomainObjectContainer.create(java.lang.String) 更高效,因为这些方法会急切地创建和配置对象,无论该对象是否是当前构建所需的。而此方法将延迟创建和配置,直到需要时才进行。
此操作是延迟的,返回的元素未实例化。返回一个 NamedDomainObjectProvider,允许继续将其与其他延迟 API 一起使用。