org.apache.http
Class ProtocolVersion

java.lang.Object
  extended by org.apache.http.ProtocolVersion
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
HttpVersion

@Contract(threading=IMMUTABLE)
public class ProtocolVersion
extends Object
implements Serializable, Cloneable

Represents a protocol version. The "major.minor" numbering scheme is used to indicate versions of the protocol.

This class defines a protocol version as a combination of protocol name, major version number, and minor version number. Note that equals(java.lang.Object) and hashCode() are defined as final here, they cannot be overridden in derived classes.

Since:
4.0
See Also:
Serialized Form

Field Summary
protected  int major
          Major version number of the protocol
protected  int minor
          Minor version number of the protocol
protected  String protocol
          Name of the protocol.
 
Constructor Summary
ProtocolVersion(String protocol, int major, int minor)
          Create a protocol version designator.
 
Method Summary
 Object clone()
           
 int compareToVersion(ProtocolVersion that)
          Compares this protocol version with another one.
 boolean equals(Object obj)
          Checks equality of this protocol version with an object.
 ProtocolVersion forVersion(int major, int minor)
          Obtains a specific version of this protocol.
 int getMajor()
          Returns the major version number of the protocol.
 int getMinor()
          Returns the minor version number of the HTTP protocol.
 String getProtocol()
          Returns the name of the protocol.
 boolean greaterEquals(ProtocolVersion version)
          Tests if this protocol version is greater or equal to the given one.
 int hashCode()
          Obtains a hash code consistent with equals(java.lang.Object).
 boolean isComparable(ProtocolVersion that)
          Checks whether this protocol can be compared to another one.
 boolean lessEquals(ProtocolVersion version)
          Tests if this protocol version is less or equal to the given one.
 String toString()
          Converts this protocol version to a string.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

protocol

protected final String protocol
Name of the protocol.


major

protected final int major
Major version number of the protocol


minor

protected final int minor
Minor version number of the protocol

Constructor Detail

ProtocolVersion

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
Method Detail

getProtocol

public final String getProtocol()
Returns the name of the protocol.

Returns:
the protocol name

getMajor

public final int getMajor()
Returns the major version number of the protocol.

Returns:
the major version number.

getMinor

public final int getMinor()
Returns the minor version number of the HTTP protocol.

Returns:
the minor version number.

forVersion

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

hashCode

public final int hashCode()
Obtains a hash code consistent with equals(java.lang.Object).

Overrides:
hashCode in class Object
Returns:
the hashcode of this protocol version

equals

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.

Overrides:
equals in class Object
Parameters:
obj - the object to compare with
Returns:
true if the argument is the same protocol version, false otherwise

isComparable

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
Returns:
true if compareToVersion can be called with the argument, false otherwise

compareToVersion

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 protocol 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.
Throws:
IllegalArgumentException - if the argument has a different protocol name than this object, or if the argument is null

greaterEquals

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

lessEquals

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

toString

public String toString()
Converts this protocol version to a string.

Overrides:
toString in class Object
Returns:
a protocol version string, like "HTTP/1.1"

clone

public Object clone()
             throws CloneNotSupportedException
Overrides:
clone in class Object
Throws:
CloneNotSupportedException


Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.