Package org.osgi.framework
Class VersionRange
- java.lang.Object
-
- org.osgi.framework.VersionRange
-
public class VersionRange extends java.lang.Object
Version range. A version range is an interval describing a set ofversions
.A range has a left (lower) endpoint and a right (upper) endpoint. Each endpoint can be open (excluded from the set) or closed (included in the set).
VersionRange
objects are immutable.- Since:
- 1.7
- Author:
- $Id: 1f5fa660a1a42e83371fe0d2c61ae79ce1cb1710 $
-
-
Field Summary
Fields Modifier and Type Field Description static char
LEFT_CLOSED
The left endpoint is closed and is included in the range.static char
LEFT_OPEN
The left endpoint is open and is excluded from the range.static char
RIGHT_CLOSED
The right endpoint is closed and is included in the range.static char
RIGHT_OPEN
The right endpoint is open and is excluded from the range.
-
Constructor Summary
Constructors Constructor Description VersionRange(char leftType, Version leftEndpoint, Version rightEndpoint, char rightType)
Creates a version range from the specified versions.VersionRange(java.lang.String range)
Creates a version range from the specified string.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object object)
Compares thisVersionRange
object to another object.Version
getLeft()
Returns the left endpoint of this version range.char
getLeftType()
Returns the type of the left endpoint of this version range.Version
getRight()
Returns the right endpoint of this version range.char
getRightType()
Returns the type of the right endpoint of this version range.int
hashCode()
Returns a hash code value for the object.boolean
includes(Version version)
Returns whether this version range includes the specified version.VersionRange
intersection(VersionRange... ranges)
Returns the intersection of this version range with the specified version ranges.boolean
isEmpty()
Returns whether this version range is empty.boolean
isExact()
Returns whether this version range contains only a single version.java.lang.String
toFilterString(java.lang.String attributeName)
Returns the filter string for this version range using the specified attribute name.java.lang.String
toString()
Returns the string representation of this version range.static VersionRange
valueOf(java.lang.String range)
Returns aVersionRange
object holding the version range in the specifiedString
.
-
-
-
Field Detail
-
LEFT_OPEN
public static final char LEFT_OPEN
The left endpoint is open and is excluded from the range.The value of
LEFT_OPEN
is'('
.- See Also:
- Constant Field Values
-
LEFT_CLOSED
public static final char LEFT_CLOSED
The left endpoint is closed and is included in the range.The value of
LEFT_CLOSED
is'['
.- See Also:
- Constant Field Values
-
RIGHT_OPEN
public static final char RIGHT_OPEN
The right endpoint is open and is excluded from the range.The value of
RIGHT_OPEN
is')'
.- See Also:
- Constant Field Values
-
RIGHT_CLOSED
public static final char RIGHT_CLOSED
The right endpoint is closed and is included in the range.The value of
RIGHT_CLOSED
is']'
.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
VersionRange
public VersionRange(char leftType, Version leftEndpoint, Version rightEndpoint, char rightType)
Creates a version range from the specified versions.- Parameters:
leftType
- Must be eitherLEFT_CLOSED
orLEFT_OPEN
.leftEndpoint
- Left endpoint of range. Must not benull
.rightEndpoint
- Right endpoint of range. May benull
to indicate the right endpoint is Infinity.rightType
- Must be eitherRIGHT_CLOSED
orRIGHT_OPEN
.- Throws:
java.lang.IllegalArgumentException
- If the arguments are invalid.
-
VersionRange
public VersionRange(java.lang.String range)
Creates a version range from the specified string.Version range string grammar:
range ::= interval | atleast interval ::= ( '[' | '(' ) left ',' right ( ']' | ')' ) left ::= version right ::= version atleast ::= version
- Parameters:
range
- String representation of the version range. The versions in the range must contain no whitespace. Other whitespace in the range string is ignored. Must not benull
.- Throws:
java.lang.IllegalArgumentException
- Ifrange
is improperly formatted.
-
-
Method Detail
-
getLeft
public Version getLeft()
Returns the left endpoint of this version range.- Returns:
- The left endpoint.
-
getRight
public Version getRight()
Returns the right endpoint of this version range.- Returns:
- The right endpoint. May be
null
which indicates the right endpoint is Infinity.
-
getLeftType
public char getLeftType()
Returns the type of the left endpoint of this version range.- Returns:
LEFT_CLOSED
if the left endpoint is closed orLEFT_OPEN
if the left endpoint is open.
-
getRightType
public char getRightType()
Returns the type of the right endpoint of this version range.- Returns:
RIGHT_CLOSED
if the right endpoint is closed orRIGHT_OPEN
if the right endpoint is open.
-
includes
public boolean includes(Version version)
Returns whether this version range includes the specified version.- Parameters:
version
- The version to test for inclusion in this version range.- Returns:
true
if the specified version is included in this version range;false
otherwise.
-
intersection
public VersionRange intersection(VersionRange... ranges)
Returns the intersection of this version range with the specified version ranges.- Parameters:
ranges
- The version ranges to intersect with this version range.- Returns:
- A version range representing the intersection of this version range and the specified version ranges. If no version ranges are specified, then this version range is returned.
-
isEmpty
public boolean isEmpty()
Returns whether this version range is empty. A version range is empty if the set of versions defined by the interval is empty.- Returns:
true
if this version range is empty;false
otherwise.
-
isExact
public boolean isExact()
Returns whether this version range contains only a single version.- Returns:
true
if this version range contains only a single version;false
otherwise.
-
toString
public java.lang.String toString()
Returns the string representation of this version range.The format of the version range string will be a version string if the right end point is Infinity (
null
) or an interval string.- Overrides:
toString
in classjava.lang.Object
- Returns:
- The string representation of this version range.
-
hashCode
public int hashCode()
Returns a hash code value for the object.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- An integer which is a hash code value for this object.
-
equals
public boolean equals(java.lang.Object object)
Compares thisVersionRange
object to another object.A version range is considered to be equal to another version range if both the endpoints and their types are equal or if both version ranges are
empty
.- Overrides:
equals
in classjava.lang.Object
- Parameters:
object
- TheVersionRange
object to be compared.- Returns:
true
ifobject
is aVersionRange
and is equal to this object;false
otherwise.
-
toFilterString
public java.lang.String toFilterString(java.lang.String attributeName)
Returns the filter string for this version range using the specified attribute name.- Parameters:
attributeName
- The attribute name to use in the returned filter string.- Returns:
- A filter string for this version range using the specified attribute name.
- Throws:
java.lang.IllegalArgumentException
- If the specified attribute name is not a valid attribute name.- See Also:
- "Core Specification, Filters, for a description of the filter string syntax."
-
valueOf
public static VersionRange valueOf(java.lang.String range)
Returns aVersionRange
object holding the version range in the specifiedString
.See
VersionRange(String)
for the format of the version range string.- Parameters:
range
- String representation of the version range. The versions in the range must contain no whitespace. Other whitespace in the range string is ignored. Must not benull
.- Returns:
- A
VersionRange
object representing the version range. - Throws:
java.lang.IllegalArgumentException
- Ifrange
is improperly formatted.- Since:
- 1.8
-
-