Class TargetedPID
- java.lang.Object
-
- org.apache.felix.scr.impl.metadata.TargetedPID
-
public class TargetedPID extends java.lang.Object
Copied with modifications from felix configadmin. TheTargetedPID
class represents a targeted PID as read from a configuration object.For a factory configuration the
TargetedPID
represents the factory PID of the configuration. Otherwise it represents the PID itself of the configuration.
-
-
Field Summary
Fields Modifier and Type Field Description private short
bindingLevel
The level of binding of this targeted PID:0
-- this PID is not targeted at all1
-- this PID is targeted by the symbolic name2
-- this PID is targeted by the symbolic name and version3
-- this PID is targeted by the symbolic name, version, and locationprivate java.lang.String
location
private java.lang.String
rawPid
private java.lang.String
servicePid
private java.lang.String
symbolicName
private java.lang.String
version
-
Constructor Summary
Constructors Constructor Description TargetedPID(java.lang.String rawPid)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
bindsStronger(TargetedPID other)
boolean
equals(java.lang.Object obj)
static java.lang.String
getBundleVersion(org.osgi.framework.Bundle bundle)
Returns the bundle's version as required for targeted PIDs: If the bundle has a version the string representation of the version string converted to a Version object is returned.java.lang.String
getRawPid()
Gets the raw PID with which this instance has been created.java.lang.String
getServicePid()
Returns the service PID of this targeted PID which basically is the targeted PID without the targeting information.int
hashCode()
boolean
matchesTarget(org.osgi.framework.Bundle serviceBundle)
Returns true if the target of this PID (bundle symbolic name, version, and location) match the bundle registering the referenced service.java.lang.String
toString()
-
-
-
Field Detail
-
rawPid
private final java.lang.String rawPid
-
servicePid
private final java.lang.String servicePid
-
symbolicName
private final java.lang.String symbolicName
-
version
private final java.lang.String version
-
location
private final java.lang.String location
-
bindingLevel
private final short bindingLevel
The level of binding of this targeted PID:0
-- this PID is not targeted at all1
-- this PID is targeted by the symbolic name2
-- this PID is targeted by the symbolic name and version3
-- this PID is targeted by the symbolic name, version, and location
-
-
Method Detail
-
getBundleVersion
public static java.lang.String getBundleVersion(org.osgi.framework.Bundle bundle)
Returns the bundle's version as required for targeted PIDs: If the bundle has a version the string representation of the version string converted to a Version object is returned. Otherwise the string representation ofVersion.emptyVersion
is returned.- Parameters:
bundle
- The bundle whose version is to be returned.
-
matchesTarget
public boolean matchesTarget(org.osgi.framework.Bundle serviceBundle)
Returns true if the target of this PID (bundle symbolic name, version, and location) match the bundle registering the referenced service.This method just checks the target not the PID value itself, so this method returning
true
does not indicate whether the service actually is registered with a service PID equal to the raw PID of this targeted PID.This method also returns
false
if the service has concurrently been unregistered and the registering bundle is nownull
.- Parameters:
serviceBundle
-Bundle
to the registered service- Returns:
true
if the referenced service matches the target of this PID.
-
getRawPid
public java.lang.String getRawPid()
Gets the raw PID with which this instance has been created.If an actual service PID contains pipe symbols that PID might be considered being targeted PID without it actually being one. This method provides access to the raw PID to allow for such services to be configured.
-
getServicePid
public java.lang.String getServicePid()
Returns the service PID of this targeted PID which basically is the targeted PID without the targeting information.
-
bindsStronger
public boolean bindsStronger(TargetedPID other)
Returnstrue
if this targeted PID binds stronger than theother
TargetedPID
.This method assumes both targeted PIDs have already been checked for suitability for the bundle encoded in the targetting.
- Parameters:
other
- The targeted PID to check whether it is binding stronger or not.- Returns:
true
if theother
targeted PID is binding strong.
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-