Class ConcurrentServiceReferenceSetMap<K,V>
- java.lang.Object
- 
- com.ibm.wsspi.kernel.service.utils.ConcurrentServiceReferenceSetMap<K,V>
 
- 
 public class ConcurrentServiceReferenceSetMap<K,V> extends java.lang.ObjectThis provides a map implementation for lazy-resolution of multiple services. Use this class when you have frequent iteration with infrequent add/removal. Entries are not stored in any particular order, but services with the same key are stored in reverse order ofServiceReference.compareTo(java.lang.Object): highest service.ranking then lowest (first) service.id.Usage (following OSGi DS naming conventions/patterns): private final ConcurrentServiceReferenceSetMap<K,V> serviceSet = new ConcurrentServiceReferenceSet<T>("referenceName"); protected void activate(ComponentContext ctx) { serviceSet.activate(ctx); } protected void deactivate(ComponentContext ctx) { serviceSet.deactivate(ctx); } protected void setReferenceName(ServiceReference<V> ref) { K key; serviceMap.putReference(key, ref); } protected void unsetReferenceName(ServiceReference<V> ref) { K key; serviceMap.removeReference(key, ref); } public Iterator<T> getServices() { return serviceSet.getServices(); }
- 
- 
Constructor SummaryConstructors Constructor Description ConcurrentServiceReferenceSetMap(java.lang.String name)Create a new ConcurrentServiceReferenceMap for the named service.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactivate(org.osgi.service.component.ComponentContext context)voiddeactivate(org.osgi.service.component.ComponentContext context)Deactivates the map.java.util.Iterator<V>getServices(K key)Retrieve an iterator for the services associated with the given key.
 Services are returned in service rank order.java.util.Iterator<ServiceAndServiceReferencePair<V>>getServicesWithReferences(K key)Retrieve an iterator for service & service reference pairs for a given key
 Services are returned in service rank order.
 Service References are available to query properties etc.booleanisEmpty()Check if there are any registered/added service references: this will return true if all the known sets for all known keys report as empty.booleanputReference(K key, org.osgi.framework.ServiceReference<V> reference)Associates the reference with the key.booleanremoveReference(K key, org.osgi.framework.ServiceReference<V> reference)Removes the reference associated with the key.java.lang.StringtoString()
 
- 
- 
- 
Method Detail- 
activatepublic void activate(org.osgi.service.component.ComponentContext context) 
 - 
deactivatepublic void deactivate(org.osgi.service.component.ComponentContext context) Deactivates the map. Will trigger a release of all held services.
 - 
toStringpublic java.lang.String toString() - Overrides:
- toStringin class- java.lang.Object
 
 - 
putReferencepublic boolean putReference(K key, org.osgi.framework.ServiceReference<V> reference) Associates the reference with the key.- Parameters:
- key- Key associated with this reference
- reference- ServiceReference for the target service
- Returns:
- true if this is replacing a previous (non-null) service reference
 
 - 
removeReferencepublic boolean removeReference(K key, org.osgi.framework.ServiceReference<V> reference) Removes the reference associated with the key.- Parameters:
- key- Key associated with this reference
- reference- ServiceReference for the target service
- Returns:
- true if reference was unset (not previously replaced)
 
 - 
isEmptypublic boolean isEmpty() Check if there are any registered/added service references: this will return true if all the known sets for all known keys report as empty.- Returns:
- true if the known sets of registered service references are empty.
 
 - 
getServicespublic java.util.Iterator<V> getServices(K key) Retrieve an iterator for the services associated with the given key.
 Services are returned in service rank order.- Parameters:
- key- The key associated with the requested service
- Returns:
- Iterator for services if any available, null otherwise.
 
 - 
getServicesWithReferencespublic java.util.Iterator<ServiceAndServiceReferencePair<V>> getServicesWithReferences(K key) Retrieve an iterator for service & service reference pairs for a given key
 Services are returned in service rank order.
 Service References are available to query properties etc.- Parameters:
- key- The key associated with the requested service
- Returns:
- Iterator supplying pairs of service & service reference if any services are available, null otherwise.
 
 
- 
 
-