Class ConcurrentServiceReferenceSetMap<K,V> 
java.lang.Object
com.ibm.wsspi.kernel.service.utils.ConcurrentServiceReferenceSetMap<K,V> 
This 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 of 
ServiceReference.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 SummaryConstructorsConstructorDescriptionCreate a new ConcurrentServiceReferenceMap for the named service.
- 
Method SummaryModifier and TypeMethodDescriptionvoidactivate(org.osgi.service.component.ComponentContext context) voiddeactivate(org.osgi.service.component.ComponentContext context) Deactivates the map.getServices(K key) Retrieve an iterator for the services associated with the given key.
 Services are returned in service rank order.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.toString()
- 
Constructor Details- 
ConcurrentServiceReferenceSetMapCreate a new ConcurrentServiceReferenceMap for the named service. e.g. from bnd.bnd: referenceName=.... or from component.xml: <reference name="referenceName".... >- Parameters:
- name- Name of DS reference
 
 
- 
- 
Method Details- 
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.
- 
toString
- 
putReferenceAssociates 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
 
- 
removeReferenceRemoves 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.
 
- 
getServicesRetrieve 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.
 
- 
getServicesWithReferencesRetrieve 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.
 
 
-