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)

建立具有指定名稱的新項目,並將其新增至此容器。

此操作是急切的,元素會在傳回之前實現。

T create(String name, Closure configureClosure)

建立具有指定名稱的新項目,將其新增至此容器,然後使用給定的閉包組態它。

此操作是急切的,元素會在傳回之前實現。

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

建立具有指定名稱的新項目,將其新增至此容器,然後使用給定的動作組態它。

此操作是急切的,元素會在傳回之前實現。

T getByName(String name)

依名稱尋找物件,如果沒有此物件則失敗。

此操作是急切的,將導致傳回的元素被實現。

T getByName(String name, Closure configureClosure)

依名稱尋找物件,如果沒有此物件則失敗。給定的組態閉包會在物件從此方法傳回之前針對該物件執行。物件會作為其委派傳遞至閉包。

此操作是急切的,將導致傳回的元素被實現。

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

依名稱尋找物件,如果沒有此物件則失敗。給定的組態動作會在物件從此方法傳回之前針對該物件執行。

此操作是急切的,將導致傳回的元素被實現。

T maybeCreate(String name)

尋找具有指定名稱的項目,如果不存在則建立並將其新增至此容器。

此操作是急切的,元素會在傳回之前實現。

依名稱尋找物件,如果沒有此物件則失敗。

此方法是惰性的,不會導致傳回的元素被實現。

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

依名稱和類型尋找物件,如果沒有此物件則失敗。

此方法是惰性的,不會導致傳回的元素被實現。

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

依名稱和類型尋找物件,如果沒有此物件則失敗。給定的組態動作會在物件從提供器傳回之前針對該物件執行。

此方法是惰性的,不會導致傳回的元素被實現。

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

依名稱尋找物件,如果沒有此物件則失敗。給定的組態動作會在物件從提供器傳回之前針對該物件執行。

此方法是惰性的,不會導致傳回的元素被實現。

注意:此方法正在孵化中,並可能在 Gradle 的未來版本中變更。

傳回一個集合,其中包含名稱符合所提供篩選器的物件。傳回的集合是即時的,因此當符合的物件新增至此集合時,它們也會在篩選後的集合中可見。

此方法是中繼操作。它不會變更集合中元素的已實現/未實現狀態。

定義一個新的物件,該物件將在需要時建立。當使用查詢方法(例如 NamedDomainObjectCollection.getByName(java.lang.String))找到物件時,或當在由此方法傳回的值上呼叫 Provider.get() 時,物件是「需要的」。

通常使用此方法比 NamedDomainObjectContainer.create(java.lang.String) 更有效率,因為該方法會急切地建立物件,無論目前建置是否需要該物件。另一方面,此方法會延遲建立直到需要時。

此操作是惰性的,傳回的元素不會被實現。會傳回 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) 更有效率,因為這些方法會急切地建立和組態物件,無論目前建置是否需要該物件。另一方面,此方法會延遲建立和組態直到需要時。

此操作是惰性的,傳回的元素不會被實現。會傳回 NamedDomainObjectProvider,允許繼續將其用於其他惰性 API。