com.ibm.wsspi.kernel.service.utils
Class ConcurrentServiceReferenceSet<T>
- java.lang.Object
com.ibm.wsspi.kernel.service.utils.ConcurrentServiceReferenceSet<T>
- public class ConcurrentServiceReferenceSet<T>
- extends java.lang.Object
ServiceReference#compareTo
: highest
service.ranking then lowest (first) service.id.
Usage (following OSGi DS naming conventions/patterns):
private final ConcurrentServiceReferenceSet<T> 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<T> ref) { serviceSet.addReference(ref); } protected void unsetReferenceName(ServiceReference<T> ref) { serviceSet.removeReference(ref); } public Iterator<T> getReferenceName() { return serviceSet.getServices(); }
Constructor Summary
Constructor and Description |
---|
ConcurrentServiceReferenceSet(java.lang.String name)
Create a new ConcurrentServiceReferenceSet for the named service.
|
Method Summary
Modifier and Type | Method and Description |
---|---|
|
activate(ComponentContext context)
|
|
addReference(
Adds the service reference to the set, or notifies the set that the
service ranking for the reference might have been updated.
|
|
deactivate(ComponentContext context)
|
|
getHighestRankedReference()
The ConcurrentReferenceSet is ordered by the usual service ranking rules:
highest service.ranking then lowest (first) service.id.
|
getHighestRankedService()
The ConcurrentReferenceSet is ordered by the usual service ranking rules:
highest service.ranking then lowest (first) service.id.
|
|
getService(
Find the provided reference in the set, and return the corresponding service.
|
|
|
getServices()
Allocate and return an iterator: The iterator will
return the service associated with each ServiceReference as it progresses.
|
|
getServicesWithReferences()
Allocate and return an iterator: The iterator will
return the service associated with each ServiceReference as it progresses.
|
|
isActive()
|
|
isEmpty()
Check if there are any registered/added service references: this will return
true if the set is empty (none available).
|
|
references()
|
|
removeReference(
Removes the service reference from the set
|
|
services()
|
|
toString()
|
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail
ConcurrentServiceReferenceSet
- public ConcurrentServiceReferenceSet( java.lang.String name)
Create a new ConcurrentServiceReferenceSet 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)
toString
- public java.lang.String toString( )
Overrides:
toString
in class java.lang.Object
addReference
- public boolean addReference(
reference)
Adds the service reference to the set, or notifies the set that the
service ranking for the reference might have been updated.
Parameters:
reference
- ServiceReference for the target service Returns:
true if this set already contained the service reference
removeReference
- public boolean removeReference(
reference)
Removes the service reference from the set
Parameters:
reference
- ServiceReference associated with service to be unset Returns:
true if this set contained the service reference
isEmpty
- public boolean isEmpty()
Check if there are any registered/added service references: this will return
true if the set is empty (none available). If the set is not
empty, the services will only be resolvable if there is a viable
component context.
Returns:
true if the list of registered service references is empty.
isActive
- public boolean isActive()
getService
- public T getService(
serviceReference)
Find the provided reference in the set, and return the corresponding service.
Subject to the same restrictions/behavior as getServices.
Parameters:
serviceReference
- Service reference to find in the set Returns:
service associated with service reference, or null if the service could not be located.
getHighestRankedService
- public T getHighestRankedService( )
The ConcurrentReferenceSet is ordered by the usual service ranking rules:
highest service.ranking then lowest (first) service.id.
Returns:
The "first" service according to the ranking
getHighestRankedReference
- public
getHighestRankedReference( )
The ConcurrentReferenceSet is ordered by the usual service ranking rules:
highest service.ranking then lowest (first) service.id.
Returns:
The "first" service reference according to the ranking
getServices
- public java.util.Iterator<T> getServices( )
Allocate and return an iterator: The iterator will
return the service associated with each ServiceReference as it progresses.
Creation of the iterator does not eagerly resolve services: resolution
is done only once per service reference, and only when "next" would
retrieve that service.
Returns:
getServicesWithReferences
- public java.util.Iterator<ServiceAndServiceReferencePair<T>> getServicesWithReferences( )
Allocate and return an iterator: The iterator will
return the service associated with each ServiceReference as it progresses.
Creation of the iterator does not eagerly resolve services: resolution
is done only once per service reference, and only when "next" would
retrieve that service.
Returns:
services
- public java.lang.Iterable<T> services( )
references
- public java.lang.Iterable<
> references( )