|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.ibm.wsspi.kernel.service.utils.ConcurrentServiceReferenceMap<K,V>
public class ConcurrentServiceReferenceMap<K,V>
This provides a simple map implementation for lazy-resolution of services. Use this class when you have frequent retrieval with infrequent add/removal. Entries are not stored in any particular order.
Usage (following OSGi DS naming conventions/patterns):
private final ConcurrentServiceReferenceMap<K,V> serviceMap = new ConcurrentServiceReferenceMap<K,V>("referenceName"); protected void activate(ComponentContext ctx) { serviceMap.activate(ctx); } protected void deactivate(ComponentContext ctx) { serviceMap.deactivate(ctx); } protected void setReferenceName(ServiceReference<V> ref) { K key; serviceMap.addReference(key, ref); } protected void unsetReferenceName(ServiceReference<V> ref) { K key; serviceMap.removeReference(key, ref); } public ServiceReference<V> getReferenceName(K key) { return serviceMap.getServices(key); }
Constructor Summary | |
---|---|
ConcurrentServiceReferenceMap(java.lang.String name)
Create a new ConcurrentServiceReferenceMap for the named service. |
Method Summary | |
---|---|
void |
activate(org.osgi.service.component.ComponentContext context)
|
void |
deactivate(org.osgi.service.component.ComponentContext context)
Deactivates the map. |
org.osgi.framework.ServiceReference<V> |
getReference(K key)
Returns the ServiceReference associated with key |
V |
getService(K key)
Retrieve the service associated with key. |
java.util.Iterator<V> |
getServices()
Iterate over all services in the map in no specific order. |
V |
getServiceWithException(K key)
|
boolean |
isEmpty()
Check if there are any registered/added service references: this will return true if the set is empty (none available). |
java.util.Set<K> |
keySet()
Answers a Set of the keys contained in this Map in no specific order. |
boolean |
putReference(K key,
org.osgi.framework.ServiceReference<V> reference)
Associates the reference with the key. |
org.osgi.framework.ServiceReference<V> |
putReferenceIfAbsent(K key,
org.osgi.framework.ServiceReference<V> reference)
Associates the reference with the key but only if there is not an existing reference associated with that key. |
java.lang.Iterable<org.osgi.framework.ServiceReference<V>> |
references()
|
boolean |
removeReference(K key,
org.osgi.framework.ServiceReference<V> reference)
Removes the reference associated with the key. |
int |
size()
Answers the number of elements in this Map. |
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public ConcurrentServiceReferenceMap(java.lang.String name)
name
- Name of DS referenceMethod Detail |
---|
public void activate(org.osgi.service.component.ComponentContext context)
public void deactivate(org.osgi.service.component.ComponentContext context)
public java.lang.String toString()
toString
in class java.lang.Object
public boolean putReference(K key, org.osgi.framework.ServiceReference<V> reference)
key
- Key associated with this referencereference
- ServiceReference for the target service
public org.osgi.framework.ServiceReference<V> putReferenceIfAbsent(K key, org.osgi.framework.ServiceReference<V> reference)
key
is not null
.
key
- Key associated with this referencereference
- ServiceReference for the target service
null
otherwiseConcurrentMap.putIfAbsent(Object, Object)
public boolean removeReference(K key, org.osgi.framework.ServiceReference<V> reference)
key
- Key associated with this referencereference
- ServiceReference associated with service to be unset.
public boolean isEmpty()
public int size()
public java.util.Set<K> keySet()
public java.lang.Iterable<org.osgi.framework.ServiceReference<V>> references()
public V getService(K key)
key
- The key associated with the requested service
public V getServiceWithException(K key)
java.lang.IllegalStateException
- if the internal state is such that
locating the service is not possible or if the service
is not retrievablepublic org.osgi.framework.ServiceReference<V> getReference(K key)
key
- The key associated with the service
public java.util.Iterator<V> getServices()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |