具名領域物件容器是 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。