Class ServiceRegistrationImpl.ServiceReferenceImpl
- java.lang.Object
-
- org.apache.felix.framework.wiring.BundleCapabilityImpl
-
- org.apache.felix.framework.ServiceRegistrationImpl.ServiceReferenceImpl
-
- All Implemented Interfaces:
java.lang.Comparable
,ServiceReference
,BundleCapability
,Capability
- Enclosing class:
- ServiceRegistrationImpl
class ServiceRegistrationImpl.ServiceReferenceImpl extends BundleCapabilityImpl implements ServiceReference
-
-
Field Summary
Fields Modifier and Type Field Description private ServiceRegistrationImpl.ServiceReferenceMap
m_map
-
Fields inherited from class org.apache.felix.framework.wiring.BundleCapabilityImpl
VERSION_ATTR
-
-
Constructor Summary
Constructors Modifier Constructor Description private
ServiceReferenceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(java.lang.Object reference)
Compares thisServiceReference
with the specifiedServiceReference
for order.java.util.Map<java.lang.String,java.lang.Object>
getAttributes()
Returns the attributes of this capability.Bundle
getBundle()
Returns the bundle that registered the service referenced by thisServiceReference
object.java.util.Map<java.lang.String,java.lang.String>
getDirectives()
Returns the directives of this capability.java.lang.String
getNamespace()
Returns the namespace of this capability.java.lang.Object
getProperty(java.lang.String s)
Returns the property value to which the specified property key is mapped in the propertiesDictionary
object of the service referenced by thisServiceReference
object.java.lang.String[]
getPropertyKeys()
Returns an array of the keys in the propertiesDictionary
object of the service referenced by thisServiceReference
object.(package private) ServiceRegistrationImpl
getRegistration()
BundleRevision
getRevision()
Returns the bundle revision declaring this capability.java.util.List<java.lang.String>
getUses()
Bundle[]
getUsingBundles()
Returns the bundles that are using the service referenced by thisServiceReference
object.boolean
isAssignableTo(Bundle requester, java.lang.String className)
Tests if the bundle that registered the service referenced by thisServiceReference
and the specified bundle use the same source for the package of the specified class name.java.lang.String
toString()
-
Methods inherited from class org.apache.felix.framework.wiring.BundleCapabilityImpl
getResource, isAttributeMandatory, isIncluded
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.osgi.resource.Capability
equals, hashCode
-
-
-
-
Field Detail
-
m_map
private final ServiceRegistrationImpl.ServiceReferenceMap m_map
-
-
Method Detail
-
getRegistration
ServiceRegistrationImpl getRegistration()
-
getRevision
public BundleRevision getRevision()
Description copied from interface:BundleCapability
Returns the bundle revision declaring this capability.- Specified by:
getRevision
in interfaceBundleCapability
- Overrides:
getRevision
in classBundleCapabilityImpl
- Returns:
- The bundle revision declaring this capability.
-
getNamespace
public java.lang.String getNamespace()
Description copied from interface:BundleCapability
Returns the namespace of this capability.- Specified by:
getNamespace
in interfaceBundleCapability
- Specified by:
getNamespace
in interfaceCapability
- Overrides:
getNamespace
in classBundleCapabilityImpl
- Returns:
- The namespace of this capability.
-
getDirectives
public java.util.Map<java.lang.String,java.lang.String> getDirectives()
Description copied from interface:BundleCapability
Returns the directives of this capability.All capability directives not specified by the
wiring namespaces
have no specified semantics and are considered extra user defined information.- Specified by:
getDirectives
in interfaceBundleCapability
- Specified by:
getDirectives
in interfaceCapability
- Overrides:
getDirectives
in classBundleCapabilityImpl
- Returns:
- An unmodifiable map of directive names to directive values for this capability, or an empty map if this capability has no directives.
-
getAttributes
public java.util.Map<java.lang.String,java.lang.Object> getAttributes()
Description copied from interface:BundleCapability
Returns the attributes of this capability.- Specified by:
getAttributes
in interfaceBundleCapability
- Specified by:
getAttributes
in interfaceCapability
- Overrides:
getAttributes
in classBundleCapabilityImpl
- Returns:
- An unmodifiable map of attribute names to attribute values for this capability, or an empty map if this capability has no attributes.
-
getUses
public java.util.List<java.lang.String> getUses()
- Overrides:
getUses
in classBundleCapabilityImpl
-
getProperty
public java.lang.Object getProperty(java.lang.String s)
Description copied from interface:ServiceReference
Returns the property value to which the specified property key is mapped in the propertiesDictionary
object of the service referenced by thisServiceReference
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.- Specified by:
getProperty
in interfaceServiceReference
- Parameters:
s
- The property key.- Returns:
- The property value to which the key is mapped;
null
if there is no property named after the key.
-
getPropertyKeys
public java.lang.String[] getPropertyKeys()
Description copied from interface:ServiceReference
Returns an array of the keys in the propertiesDictionary
object of the service referenced by thisServiceReference
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 theBundleContext.registerService(String[],Object,Dictionary)
orServiceRegistration.setProperties(Dictionary)
methods.- Specified by:
getPropertyKeys
in interfaceServiceReference
- Returns:
- An array of property keys.
-
getBundle
public Bundle getBundle()
Description copied from interface:ServiceReference
Returns the bundle that registered the service referenced by thisServiceReference
object.This method must return
null
when the service has been unregistered. This can be used to determine if the service has been unregistered.- Specified by:
getBundle
in interfaceServiceReference
- Returns:
- The bundle that registered the service referenced by this
ServiceReference
object;null
if that service has already been unregistered. - See Also:
BundleContext.registerService(String[],Object,Dictionary)
-
getUsingBundles
public Bundle[] getUsingBundles()
Description copied from interface:ServiceReference
Returns the bundles that are using the service referenced by thisServiceReference
object. Specifically, this method returns the bundles whose usage count for that service is greater than zero.- Specified by:
getUsingBundles
in interfaceServiceReference
- Returns:
- An array of bundles whose usage count for the service referenced
by this
ServiceReference
object is greater than zero;null
if no bundles are currently using that service.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classBundleCapabilityImpl
-
isAssignableTo
public boolean isAssignableTo(Bundle requester, java.lang.String className)
Description copied from interface:ServiceReference
Tests if the bundle that registered the service referenced by thisServiceReference
and the specified bundle use the same source for the package of the specified class name.This method performs the following checks:
- Get the package name from the specified class name.
- For the bundle that registered the service referenced by this
ServiceReference
(registrant bundle); find the source for the package. If no source is found then returntrue
if the registrant bundle is equal to the specified bundle; otherwise returnfalse
. - If the package source of the registrant bundle is equal to the
package source of the specified bundle then return
true
; otherwise returnfalse
.
- Specified by:
isAssignableTo
in interfaceServiceReference
- Parameters:
requester
- TheBundle
object to check.className
- The class name to check.- Returns:
true
if the bundle which registered the service referenced by thisServiceReference
and the specified bundle use the same source for the package of the specified class name. Otherwisefalse
is returned.
-
compareTo
public int compareTo(java.lang.Object reference)
Description copied from interface:ServiceReference
Compares thisServiceReference
with the specifiedServiceReference
for order.If this
ServiceReference
and the specifiedServiceReference
have the sameservice id
they are equal. ThisServiceReference
is less than the specifiedServiceReference
if it has a lowerservice ranking
and greater if it has a higher service ranking. Otherwise, if thisServiceReference
and the specifiedServiceReference
have the sameservice ranking
, thisServiceReference
is less than the specifiedServiceReference
if it has a higherservice id
and greater if it has a lower service id.- Specified by:
compareTo
in interfacejava.lang.Comparable
- Specified by:
compareTo
in interfaceServiceReference
- Parameters:
reference
- TheServiceReference
to be compared.- Returns:
- Returns a negative integer, zero, or a positive integer if this
ServiceReference
is less than, equal to, or greater than the specifiedServiceReference
.
-
-