public class VersionRange
extends java.lang.Object
versions
.
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.
Modifier and Type | Field and 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 and 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.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object object)
Compares this
VersionRange 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 a
VersionRange object holding the version range in the
specified String . |
public static final char LEFT_OPEN
The value of LEFT_OPEN
is '('
.
public static final char LEFT_CLOSED
The value of LEFT_CLOSED
is '['
.
public static final char RIGHT_OPEN
The value of RIGHT_OPEN
is ')'
.
public static final char RIGHT_CLOSED
The value of RIGHT_CLOSED
is ']'
.
public VersionRange(char leftType, Version leftEndpoint, Version rightEndpoint, char rightType)
leftType
- Must be either LEFT_CLOSED
or LEFT_OPEN
.leftEndpoint
- Left endpoint of range. Must not be null
.rightEndpoint
- Right endpoint of range. May be null
to
indicate the right endpoint is Infinity.rightType
- Must be either RIGHT_CLOSED
or
RIGHT_OPEN
.java.lang.IllegalArgumentException
- If the arguments are invalid.public VersionRange(java.lang.String range)
Version range string grammar:
range ::= interval | atleast interval ::= ( '[' | '(' ) left ',' right ( ']' | ')' ) left ::= version right ::= version atleast ::= version
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 be null
.java.lang.IllegalArgumentException
- If range
is improperly
formatted.public Version getLeft()
public Version getRight()
null
which indicates the right
endpoint is Infinity.public char getLeftType()
LEFT_CLOSED
if the left endpoint is closed or
LEFT_OPEN
if the left endpoint is open.public char getRightType()
RIGHT_CLOSED
if the right endpoint is closed or
RIGHT_OPEN
if the right endpoint is open.public boolean includes(Version version)
version
- The version to test for inclusion in this version range.true
if the specified version is included in this version
range; false
otherwise.public VersionRange intersection(VersionRange... ranges)
ranges
- The version ranges to intersect with this version range.public boolean isEmpty()
true
if this version range is empty; false
otherwise.public boolean isExact()
true
if this version range contains only a single
version; false
otherwise.public java.lang.String toString()
The format of the version range string will be a version string if the
right end point is Infinity (null
) or an interval string.
toString
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object object)
VersionRange
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
.
equals
in class java.lang.Object
object
- The VersionRange
object to be compared.true
if object
is a VersionRange
and is
equal to this object; false
otherwise.public java.lang.String toFilterString(java.lang.String attributeName)
attributeName
- The attribute name to use in the returned filter
string.java.lang.IllegalArgumentException
- If the specified attribute name is not a
valid attribute name.public static VersionRange valueOf(java.lang.String range)
VersionRange
object holding the version range in the
specified String
.
See VersionRange(String)
for the format of the version range
string.
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 be null
.VersionRange
object representing the version range.java.lang.IllegalArgumentException
- If range
is improperly
formatted.Copyright © OSGi Alliance (2000, 2018). All Rights Reserved. Licensed under the OSGi Specification License, Version 2.0