Package org.jvnet.hk2.internal
Class IterableProviderImpl<T>
- java.lang.Object
-
- org.jvnet.hk2.internal.IterableProviderImpl<T>
-
- Type Parameters:
T- The type for this provider
- All Implemented Interfaces:
java.lang.Iterable<T>,javax.inject.Provider<T>,IterableProvider<T>
public class IterableProviderImpl<T> extends java.lang.Object implements IterableProvider<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classIterableProviderImpl.HandleIterable<U>private static classIterableProviderImpl.MyHandleIterator<U>private static classIterableProviderImpl.MyIterator<U>
-
Field Summary
Fields Modifier and Type Field Description private booleanisIterableprivate ServiceLocatorImpllocatorprivate InjecteeoriginalInjecteeprivate java.util.Set<java.lang.annotation.Annotation>requiredQualifiersprivate java.lang.reflect.TyperequiredTypeprivate Unqualifiedunqualified
-
Constructor Summary
Constructors Constructor Description IterableProviderImpl(ServiceLocatorImpl locator, java.lang.reflect.Type requiredType, java.util.Set<java.lang.annotation.Annotation> requiredQualifiers, Unqualified unqualified, Injectee originalInjectee, boolean isIterable)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Tget()ServiceHandle<T>getHandle()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.intgetSize()Returns the size of the iterator that would be returnedjava.lang.Iterable<ServiceHandle<T>>handleIterator()This version of iterator returns an iterator of ServiceHandles rather than returning the services (which then have no way to be properly destroyed)java.util.Iterator<T>iterator()private voidjustInTime()IterableProvider<T>named(java.lang.String name)Returns an IterableProvider that is further qualified with the given name<U> IterableProvider<U>ofType(java.lang.reflect.Type type)Returns an IterableProvider that is of the given type.IterableProvider<T>qualifiedWith(java.lang.annotation.Annotation... qualifiers)A set of qualifiers to further restrict this iterator to.java.lang.StringtoString()
-
-
-
Field Detail
-
locator
private final ServiceLocatorImpl locator
-
requiredType
private final java.lang.reflect.Type requiredType
-
requiredQualifiers
private final java.util.Set<java.lang.annotation.Annotation> requiredQualifiers
-
unqualified
private final Unqualified unqualified
-
originalInjectee
private final Injectee originalInjectee
-
isIterable
private final boolean isIterable
-
-
Constructor Detail
-
IterableProviderImpl
IterableProviderImpl(ServiceLocatorImpl locator, java.lang.reflect.Type requiredType, java.util.Set<java.lang.annotation.Annotation> requiredQualifiers, Unqualified unqualified, Injectee originalInjectee, boolean isIterable)
-
-
Method Detail
-
justInTime
private void justInTime()
-
getHandle
public ServiceHandle<T> getHandle()
Description copied from interface:IterableProviderRather 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:
getHandlein interfaceIterableProvider<T>- Returns:
- A ServiceHandle for the service, or null if there is currently no service definition available
-
iterator
public java.util.Iterator<T> iterator()
- Specified by:
iteratorin interfacejava.lang.Iterable<T>
-
getSize
public int getSize()
Description copied from interface:IterableProviderReturns the size of the iterator that would be returned- Specified by:
getSizein interfaceIterableProvider<T>- Returns:
- the size of the iterator that would be chosen
-
named
public IterableProvider<T> named(java.lang.String name)
Description copied from interface:IterableProviderReturns an IterableProvider that is further qualified with the given name- Specified by:
namedin interfaceIterableProvider<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(java.lang.reflect.Type type)
Description copied from interface:IterableProviderReturns an IterableProvider that is of the given type. This type must be one of the type safe contracts of the original iterator- Specified by:
ofTypein interfaceIterableProvider<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(java.lang.annotation.Annotation... qualifiers)
Description copied from interface:IterableProviderA set of qualifiers to further restrict this iterator to.- Specified by:
qualifiedWithin interfaceIterableProvider<T>- Parameters:
qualifiers- The qualifiers to further restrict this iterator to- Returns:
- An iterator restricted with the given qualifiers
-
handleIterator
public java.lang.Iterable<ServiceHandle<T>> handleIterator()
Description copied from interface:IterableProviderThis version of iterator returns an iterator of ServiceHandles rather than returning the services (which then have no way to be properly destroyed)- Specified by:
handleIteratorin interfaceIterableProvider<T>- Returns:
- An iterator of ServiceHandles for the set of services represtended by this IterableProvider
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-