org.apache.http

## Class ProtocolVersion

- java.lang.Object
- - org.apache.http.ProtocolVersion

- All Implemented Interfaces:
    Serializable, Cloneable
  Direct Known Subclasses:
    HttpVersion

      @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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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

    Constructors
    Constructor and Description
    `ProtocolVersion(String protocol, int major, int minor)` Create a protocol version designator.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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–2013 The Apache Software Foundation. All rights reserved.