Interface NamedDomainObjectList<T>

Type Parameters:
T - The type of objects in the list
All Superinterfaces:
Collection<T>, DomainObjectCollection<T>, Iterable<T>, List<T>, NamedDomainObjectCollection<T>
All Known Subinterfaces:
ArtifactRepositoryContainer, RepositoryHandler

public interface NamedDomainObjectList<T> extends NamedDomainObjectCollection<T>, List<T>

A specialization of NamedDomainObjectCollection that also implements List.

All object equality is determined in terms of object names. That is, calling remove() with an object that is NOT equal to an existing object in terms of equals, but IS in terms of name equality will result in the existing collection item with the equal name being removed.

You can create an instance of this type using the factory method ObjectFactory.namedDomainObjectList(Class).

  • Method Details

    • withType

      <S extends T> NamedDomainObjectList<S> withType(Class<S> type)
      Returns a collection containing the objects in this collection of the given type. The returned collection is live, so that when matching objects are later added to this collection, they are also visible in the filtered collection.

      This method is an intermediate operation. It does not change the realized/unrealized state of the elements in the collection.

      Specified by:
      withType in interface DomainObjectCollection<T>
      Specified by:
      withType in interface NamedDomainObjectCollection<T>
      Parameters:
      type - The type of objects to find.
      Returns:
      The matching objects. Returns an empty collection if there are no such objects in this collection.
    • named

      NamedDomainObjectList<T> named(Spec<String> nameFilter)
      Returns a collection containing the objects with names matching the provided filter. The returned collection is live, so that when matching objects are added to this collection, they are also visible in the filtered collection.

      This method is an intermediate operation. It does not change the realized/unrealized state of the elements in the collection.

      Specified by:
      named in interface NamedDomainObjectCollection<T>
      Parameters:
      nameFilter - The specification to test names against.
      Returns:
      The collection of objects with names satisfying the filter. Returns an empty collection if there are no such objects in this collection.
    • matching

      NamedDomainObjectList<T> matching(Spec<? super T> spec)
      Returns a collection which contains the objects in this collection which meet the given specification. The returned collection is live, so that when matching objects are added to this collection, they are also visible in the filtered collection.

      This method is an intermediate eager operation. The application of the filter forces the realization of the collection elements.

      Specified by:
      matching in interface DomainObjectCollection<T>
      Specified by:
      matching in interface NamedDomainObjectCollection<T>
      Parameters:
      spec - The specification to use.
      Returns:
      The collection of matching objects. Returns an empty collection if there are no such objects in this collection.
    • matching

      NamedDomainObjectList<T> matching(Closure spec)
      Returns a collection which contains the objects in this collection which meet the given closure specification. The returned collection is live, so that when matching objects are added to this collection, they are also visible in the filtered collection.

      This method is an intermediate eager operation. The application of the filter forces the realization of the collection elements.

      Specified by:
      matching in interface DomainObjectCollection<T>
      Specified by:
      matching in interface NamedDomainObjectCollection<T>
      Parameters:
      spec - The specification to use. The closure gets a collection element as an argument.
      Returns:
      The collection of matching objects. Returns an empty collection if there are no such objects in this collection.
    • findAll

      List<T> findAll(Closure spec)
      Returns a collection which contains the objects in this collection which meet the given closure specification.

      This method is an eager operation. The application of the filter forces the realization of all of the underlying collection elements.

      Specified by:
      findAll in interface DomainObjectCollection<T>
      Parameters:
      spec - The specification to use. The closure gets a collection element as an argument.
      Returns:
      The collection of matching objects. Returns an empty collection if there are no such objects in this collection.