The Framework returns ServiceReference
objects from the BundleContext.getServiceReference
and BundleContext.getServiceReferences
methods.
A ServiceReference
object may be shared between bundles and can be used to examine the properties of the service and to get the service object.
Every service registered in the Framework has a unique ServiceRegistration
object and may have multiple, distinct ServiceReference
objects referring to it. ServiceReference
objects associated with a ServiceRegistration
object have the same hashCode
and are considered equal (more specifically, their equals()
method will return true
when compared).
If the same service object is registered multiple times, ServiceReference
objects associated with different ServiceRegistration
objects are not equal.
Definition at line 51 of file ServiceReference.java.
Public Member Functions | |
Object | getProperty (String key) |
Returns the property value to which the specified property key is mapped in the properties Dictionary object of the service referenced by this ServiceReference object. | |
String[] | getPropertyKeys () |
Returns an array of the keys in the properties Dictionary object of the service referenced by this ServiceReference object. | |
Bundle | getBundle () |
Returns the bundle that registered the service referenced by this ServiceReference object. | |
Bundle[] | getUsingBundles () |
Returns the bundles that are using the service referenced by this ServiceReference object. | |
boolean | isAssignableTo (Bundle bundle, String className) |
Tests if the bundle that registered the service referenced by this ServiceReference and the specified bundle use the same source for the package of the specified class name. |
Object org.osgi.framework.ServiceReference.getProperty | ( | String | key | ) |
Returns the property value to which the specified property key is mapped in the properties Dictionary
object of the service referenced by this ServiceReference
object.
Property keys are case-insensitive.
This method must continue to return property values after the service has been unregistered. This is so references to unregistered services (for example, ServiceReference
objects stored in the log) can still be interrogated.
key | The property key. |
null
if there is no property named after the key. Implemented in org.knopflerfish.framework.ServiceReferenceImpl.
Referenced by org.osgi.util.tracker.ServiceTracker.getServiceReference(), and org.osgi.util.tracker.ServiceTracker.ServiceTracker().
String [] org.osgi.framework.ServiceReference.getPropertyKeys | ( | ) |
Returns an array of the keys in the properties Dictionary
object of the service referenced by this ServiceReference
object.
This method will continue to return the keys after the service has been unregistered. This is so references to unregistered services (for example, ServiceReference
objects stored in the log) can still be interrogated.
This method is case-preserving ; this means that every key in the returned array must have the same case as the corresponding key in the properties Dictionary
that was passed to the BundleContext#registerService(String[],Object,java.util.Dictionary) or ServiceRegistration#setProperties methods.
Implemented in org.knopflerfish.framework.ServiceReferenceImpl.
Bundle org.osgi.framework.ServiceReference.getBundle | ( | ) |
Returns the bundle that registered the service referenced by this ServiceReference
object.
This method must return null
when the service has been unregistered. This can be used to determine if the service has been unregistered.
ServiceReference
object; null
if that service has already been unregistered. Implemented in org.knopflerfish.framework.ServiceReferenceImpl.
Referenced by org.openmobileis.bundle.osgi.terminal.ModuleBundleActivator.start().
Bundle [] org.osgi.framework.ServiceReference.getUsingBundles | ( | ) |
Returns the bundles that are using the service referenced by this ServiceReference
object.
Specifically, this method returns the bundles whose usage count for that service is greater than zero.
ServiceReference
object is greater than zero; null
if no bundles are currently using that service.Implemented in org.knopflerfish.framework.ServiceReferenceImpl.
boolean org.osgi.framework.ServiceReference.isAssignableTo | ( | Bundle | bundle, | |
String | className | |||
) |
Tests if the bundle that registered the service referenced by this ServiceReference
and the specified bundle use the same source for the package of the specified class name.
This method performs the following checks:
ServiceReference
(registrant bundle); find the source for the package. If no source is found then return true
if the registrant bundle is equal to the specified bundle; otherwise return false
. true
; otherwise return false
.
bundle | The Bundle object to check. | |
className | The class name to check. |
true
if the bundle which registered the service referenced by this ServiceReference
and the specified bundle use the same source for the package of the specified class name. Otherwise false
is returned.Implemented in org.knopflerfish.framework.ServiceReferenceImpl.
Referenced by org.knopflerfish.framework.Services.get().