S - Type of Service.@ProviderType public interface ServiceReference<S> extends java.lang.Comparable<java.lang.Object>
 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.
BundleContext.getServiceReference(Class), 
BundleContext.getServiceReference(String), 
BundleContext.getServiceReferences(Class, String), 
BundleContext.getServiceReferences(String, String), 
BundleContext.getService(ServiceReference), 
BundleContext.getServiceObjects(ServiceReference)| Modifier and Type | Method and Description | 
|---|---|
| int | compareTo(java.lang.Object reference)Compares this  ServiceReferencewith the specifiedServiceReferencefor order. | 
| Bundle | getBundle()Returns the bundle that registered the service referenced by this
  ServiceReferenceobject. | 
| java.util.Dictionary<java.lang.String,java.lang.Object> | getProperties()Returns a copy of the properties of the service referenced by this
  ServiceReferenceobject. | 
| java.lang.Object | getProperty(java.lang.String key)Returns the property value to which the specified property key is mapped
 in the properties  Dictionaryobject of the service referenced by
 thisServiceReferenceobject. | 
| java.lang.String[] | getPropertyKeys()Returns an array of the keys in the properties  Dictionaryobject
 of the service referenced by thisServiceReferenceobject. | 
| Bundle[] | getUsingBundles()Returns the bundles that are using the service referenced by this
  ServiceReferenceobject. | 
| boolean | isAssignableTo(Bundle bundle,
              java.lang.String className)Tests if the bundle that registered the service referenced by this
  ServiceReferenceand the specified bundle use the same source for
 the package of the specified class name. | 
java.lang.Object getProperty(java.lang.String key)
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.java.lang.String[] getPropertyKeys()
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,Dictionary) or
 ServiceRegistration.setProperties(Dictionary) methods.
Bundle getBundle()
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.BundleContext.registerService(String[],Object,Dictionary)Bundle[] getUsingBundles()
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.boolean isAssignableTo(Bundle bundle, java.lang.String className)
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.java.lang.IllegalArgumentException - If the specified Bundle was not
         created by the same framework instance as this
         ServiceReference.int compareTo(java.lang.Object reference)
ServiceReference with the specified
 ServiceReference for order.
 
 
 If this ServiceReference and the specified
 ServiceReference have the same service id they are equal. This ServiceReference is less than
 the specified ServiceReference if it has a lower
 service ranking and greater if it has a
 higher service ranking. Otherwise, if this ServiceReference and
 the specified ServiceReference have the same
 service ranking, this
 ServiceReference is less than the specified
 ServiceReference if it has a higher service id and greater if it has a lower service id.
compareTo in interface java.lang.Comparable<java.lang.Object>reference - The ServiceReference to be compared.ServiceReference is less than, equal to, or greater than
         the specified ServiceReference.java.lang.IllegalArgumentException - If the specified
         ServiceReference was not created by the same framework
         instance as this ServiceReference.java.util.Dictionary<java.lang.String,java.lang.Object> getProperties()
ServiceReference object.
 
 This method will continue to return the properties 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.
 
 The returned Dictionary object:
 
Dictionary that was passed to the
 BundleContext.registerService(String[],Object,Dictionary) or
 ServiceRegistration.setProperties(Dictionary) methods.ServiceRegistration.setProperties(Dictionary) must be called to
 modify the properties of the service.ServiceReference objectCopyright © OSGi Alliance (2000, 2018). All Rights Reserved. Licensed under the OSGi Specification License, Version 2.0