com.ibm.wsspi.kernel.service.utils
Class ConcurrentServiceReferenceSetMap<K,V>
- java.lang.Object
com.ibm.wsspi.kernel.service.utils.ConcurrentServiceReferenceSetMap<K,V>
- public class ConcurrentServiceReferenceSetMap<K,V>
- extends java.lang.Object
ServiceReference#compareTo
: 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 Summary
Constructor and Description |
---|
ConcurrentServiceReferenceSetMap(java.lang.String name)
Create a new ConcurrentServiceReferenceMap for the named service.
|
Method Summary
Modifier and Type | Method and Description |
---|---|
|
activate(ComponentContext context)
|
|
deactivate(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. |
|
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. |
|
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.
|
|
putReference(K key,
Associates the reference with the key.
|
|
removeReference(K key,
Removes the reference associated with the key.
|
|
toString()
|
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail
ConcurrentServiceReferenceSetMap
- public ConcurrentServiceReferenceSetMap( java.lang.String name)
Create a new ConcurrentServiceReferenceMap for the named service.
e.g. from bnd.bnd: referenceName=.... or from component.xml:
Parameters:
name
- Name of DS reference Method Detail
activate
- public void activate(ComponentContext context)
deactivate
- public void deactivate(ComponentContext context)
Deactivates the map. Will trigger a release of all held services.
toString
- public java.lang.String toString( )
Overrides:
toString
in class java.lang.Object
putReference
- public boolean putReference(K key,
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
removeReference
- public boolean removeReference( K key,
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)
isEmpty
- public 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.
getServices
Retrieve an iterator for the services associated with the given key.
Services are returned in service rank order.
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.
getServicesWithReferences
- public 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.
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.