Class IterableProviderImpl<T>

java.lang.Object
org.jvnet.hk2.internal.IterableProviderImpl<T>
Type Parameters:
T - The type for this provider
All Implemented Interfaces:
Iterable<T>, javax.inject.Provider<T>, IterableProvider<T>

public class IterableProviderImpl<T> extends Object implements IterableProvider<T>
  • Field Details

    • locator

      private final ServiceLocatorImpl locator
    • requiredType

      private final Type requiredType
    • requiredQualifiers

      private final Set<Annotation> requiredQualifiers
    • unqualified

      private final Unqualified unqualified
    • originalInjectee

      private final Injectee originalInjectee
    • isIterable

      private final boolean isIterable
  • Constructor Details

  • Method Details

    • justInTime

      private void justInTime()
    • get

      public T get()
      Specified by:
      get in interface javax.inject.Provider<T>
    • getHandle

      public ServiceHandle<T> getHandle()
      Description copied from interface: IterableProvider
      Rather than getting the service directly with get (in which case the returned service cannot be disposed of) this method will instead return a service handle for the current best service.
      Specified by:
      getHandle in interface IterableProvider<T>
      Returns:
      A ServiceHandle for the service, or null if there is currently no service definition available
    • iterator

      public Iterator<T> iterator()
      Specified by:
      iterator in interface Iterable<T>
    • getSize

      public int getSize()
      Description copied from interface: IterableProvider
      Returns the size of the iterator that would be returned
      Specified by:
      getSize in interface IterableProvider<T>
      Returns:
      the size of the iterator that would be chosen
    • named

      public IterableProvider<T> named(String name)
      Description copied from interface: IterableProvider
      Returns an IterableProvider that is further qualified with the given name
      Specified by:
      named in interface IterableProvider<T>
      Parameters:
      name - The value field of the Named annotation parameter. Must not be null
      Returns:
      An iterable provider further qualified with the given name
    • ofType

      public <U> IterableProvider<U> ofType(Type type)
      Description copied from interface: IterableProvider
      Returns an IterableProvider that is of the given type. This type must be one of the type safe contracts of the original iterator
      Specified by:
      ofType in interface IterableProvider<T>
      Parameters:
      type - The type to restrict the returned iterator to
      Returns:
      An iterator restricted to only providing the given type
    • qualifiedWith

      public IterableProvider<T> qualifiedWith(Annotation... qualifiers)
      Description copied from interface: IterableProvider
      A set of qualifiers to further restrict this iterator to.
      Specified by:
      qualifiedWith in interface IterableProvider<T>
      Parameters:
      qualifiers - The qualifiers to further restrict this iterator to
      Returns:
      An iterator restricted with the given qualifiers
    • handleIterator

      public Iterable<ServiceHandle<T>> handleIterator()
      Description copied from interface: IterableProvider
      This version of iterator returns an iterator of ServiceHandles rather than returning the services (which then have no way to be properly destroyed)
      Specified by:
      handleIterator in interface IterableProvider<T>
      Returns:
      An iterator of ServiceHandles for the set of services represtended by this IterableProvider
    • toString

      public String toString()
      Overrides:
      toString in class Object