org.jvnet.hk2.internal
Class IterableProviderImpl<T>

java.lang.Object
  extended by 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>

Author:
jwells

Method Summary
 T get()
           
 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.
 int getSize()
          Returns the size of the iterator that would be returned
 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)
 Iterator<T> iterator()
           
 IterableProvider<T> named(String name)
          Returns an IterableProvider that is further qualified with the given name
<U> IterableProvider<U>
ofType(Type type)
          Returns an IterableProvider that is of the given type.
 IterableProvider<T> qualifiedWith(Annotation... qualifiers)
          A set of qualifiers to further restrict this iterator to.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

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


Copyright © 2013 Oracle Corporation. All Rights Reserved.