org.apache.http.ProtocolVersion
Represents a protocol version, as specified in RFC 2616.
RFC 2616 specifies only HTTP versions, like "HTTP/1.1" and "HTTP/1.0".
RFC 3261 specifies a message format that is identical to HTTP except
for the protocol name. It defines a protocol version "SIP/2.0".
There are some nitty-gritty differences between the interpretation
of versions in HTTP and SIP. In those cases, HTTP takes precedence.
This class defines a protocol version as a combination of
protocol name, major version number, and minor version number.
Note that equals(Object) and hashCode() are defined as
final here, they cannot be overridden in derived classes.
Known Direct Subclasses
HttpVersion |
Represents an HTTP version, as specified in RFC 2616. |
Summary
Fields
protected |
|
final |
int |
major |
Major version number of the protocol |
protected |
|
final |
int |
minor |
Minor version number of the protocol |
protected |
|
final |
String |
protocol |
Name of the protocol. |
Public Constructors
Public Methods
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
Fields
protected
final
int
major
Major version number of the protocol
protected
final
int
minor
Minor version number of the protocol
protected
final
String
protocol
Name of the protocol.
Public Constructors
public
ProtocolVersion(String protocol, int major, int minor)
Create a protocol version designator.
Parameters
protocol
| the name of the protocol, for example "HTTP" |
major
| the major version number of the protocol |
minor
| the minor version number of the protocol
|
Public Methods
public
Object
clone()
Returns a new instance of the same class as the receiver, whose slots
have been filled in with the values in the slots of the receiver.
Classes which wish to support cloning must specify that they implement
the Cloneable interface, since the implementation checks for this.
Returns
- Object a shallow copy of this object.
public
int
compareToVersion(ProtocolVersion that)
Compares this protocol version with another one.
Only protocol versions with the same protocol name can be compared.
This method does
not define a total ordering, as it would be
required for
Comparable.
Parameters
that
| the protocl version to compare with |
Returns
- a negative integer, zero, or a positive integer
as this version is less than, equal to, or greater than
the argument version.
public
final
boolean
equals(Object obj)
Checks equality of this protocol version with an object.
The object is equal if it is a protocl version with the same
protocol name, major version number, and minor version number.
The specific class of the object is
not relevant,
instances of derived classes with identical attributes are
equal to instances of the base class and vice versa.
Parameters
obj
| the object to compare with |
Returns
true
if the argument is the same protocol version,
false
otherwise
public
ProtocolVersion
forVersion(int major, int minor)
Obtains a specific version of this protocol.
This can be used by derived classes to instantiate themselves instead
of the base class, and to define constants for commonly used versions.
The default implementation in this class returns
this
if the version matches, and creates a new
ProtocolVersion
otherwise.
Parameters
major
| the major version |
minor
| the minor version |
Returns
- a protocol version with the same protocol name
and the argument version
public
final
int
getMajor()
Returns the major version number of the protocol.
Returns
- the major version number.
public
final
int
getMinor()
Returns the minor version number of the HTTP protocol.
Returns
- the minor version number.
public
final
String
getProtocol()
Returns the name of the protocol.
public
final
boolean
greaterEquals(ProtocolVersion version)
Tests if this protocol version is greater or equal to the given one.
Parameters
version
| the version against which to check this version |
Returns
true
if this protocol version is
comparable to the argument
and compares as greater or equal,
false
otherwise
public
final
int
hashCode()
Obtains a hash code consistent with
equals(Object).
Returns
- the hashcode of this protocol version
public
boolean
isComparable(ProtocolVersion that)
Checks whether this protocol can be compared to another one.
Only protocol versions with the same protocol name can be
compared.
Parameters
that
| the protocol version to consider |
public
final
boolean
lessEquals(ProtocolVersion version)
Tests if this protocol version is less or equal to the given one.
Parameters
version
| the version against which to check this version |
Returns
true
if this protocol version is
comparable to the argument
and compares as less or equal,
false
otherwise
public
String
toString()
Converts this protocol version to a string.
Returns
- a protocol version string, like "HTTP/1.1"