org.firebirdsql.gds.impl

## Class GDSServerVersion

- java.lang.Object
- - org.firebirdsql.gds.impl.GDSServerVersion

All Implemented Interfaces:
  java.io.Serializable

    public final class GDSServerVersion
    extends java.lang.Object
    implements java.io.Serializable

Object representing a Firebird server version. The version string is returned in response to the `isc_info_firebird_version` information call. Expected version format is:

`<platform>-<type><majorVersion>.<minorVersion>.<variant>.<buildNum>[-<revision>] <serverName>`, and additional version string elements if present.

where `platform` is a two-character platform identification string, Windows for example is "WI", `type` is one of the three characters: "V" - production version, "T" - beta version, "X" - development version.

See Also:
  Serialized Form

### Field Summary

Fields
`static java.lang.String` `CONNECTION_OPTION_COMPRESSION`
`static java.lang.String` `CONNECTION_OPTION_ENCRYPTED`
`static GDSServerVersion` `INVALID_VERSION` GDSServerVersion that can be used as a dummy/invalid object when a version object is required, but none is available.
`static java.lang.String` `TYPE_BETA`
`static java.lang.String` `TYPE_DEVELOPMENT`
`static java.lang.String` `TYPE_PRODUCTION`

### Method Summary

Methods
`boolean` `equals(java.lang.Object obj)`
`int` `getBuildNumber()`
`java.lang.String` `getExtendedServerName()`
`java.lang.String` `getFullVersion()`
`int` `getMajorVersion()`
`int` `getMinorVersion()`
`java.lang.String` `getPlatform()`
`int` `getProtocolVersion()`
`java.lang.String` `getServerName()`
`java.lang.String` `getType()`
`int` `getVariant()`
`int` `hashCode()`
`boolean` `isEqualOrAbove(int requiredMajorVersion, int requiredMinorVersion)` Convenience method to check if the major.minor of this version is equal to or larger than the specified required version.
`boolean` `isEqualOrAbove(int requiredMajorVersion, int requiredMinorVersion, int requiredVariant)` Convenience method to check if the major.minor.variant of this version is equal to or larger than the specified required version.
`boolean` `isWireCompressionUsed()`
`boolean` `isWireEncryptionUsed()`
`static GDSServerVersion` `parseRawVersion(java.lang.String... versionStrings)` Parse the raw version string and create a GDSServerVersion object.
`java.lang.String` `toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### TYPE_PRODUCTION

    public static final java.lang.String TYPE_PRODUCTION

See Also:
  Constant Field Values

#### TYPE_BETA

    public static final java.lang.String TYPE_BETA

See Also:
  Constant Field Values

#### TYPE_DEVELOPMENT

    public static final java.lang.String TYPE_DEVELOPMENT

See Also:
  Constant Field Values

#### CONNECTION_OPTION_ENCRYPTED

    public static final java.lang.String CONNECTION_OPTION_ENCRYPTED

See Also:
  Constant Field Values

#### CONNECTION_OPTION_COMPRESSION

    public static final java.lang.String CONNECTION_OPTION_COMPRESSION

See Also:
  Constant Field Values

#### INVALID_VERSION

    public static final GDSServerVersion INVALID_VERSION

GDSServerVersion that can be used as a dummy/invalid object when a version object is required, but none is available.

### Method Detail

#### getBuildNumber

    public int getBuildNumber()

#### getMajorVersion

    public int getMajorVersion()

#### getMinorVersion

    public int getMinorVersion()

#### getPlatform

    public java.lang.String getPlatform()

#### getServerName

    public java.lang.String getServerName()

#### getType

    public java.lang.String getType()

#### getVariant

    public int getVariant()

#### getExtendedServerName

    public java.lang.String getExtendedServerName()

#### getFullVersion

    public java.lang.String getFullVersion()

#### getProtocolVersion

    public int getProtocolVersion()

Returns:
  Protocol version of the connection, or `-1` if this information is not available.

#### isWireEncryptionUsed

    public boolean isWireEncryptionUsed()

Returns:
  `true` if encryption is used, `false` if no encryption is used or if this information is not available

#### isWireCompressionUsed

    public boolean isWireCompressionUsed()

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `java.lang.Object`

#### equals

    public boolean equals(java.lang.Object obj)

Overrides:
  `equals` in class `java.lang.Object`

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### parseRawVersion

    public static GDSServerVersion parseRawVersion(java.lang.String... versionStrings)
                                            throws GDSServerVersionException

Parse the raw version string and create a GDSServerVersion object.

Parameters:
  `versionStrings` - strings to parse, expects a non-empty array with at least 1, and usually 2 version strings
Throws:
  `GDSServerVersionException` - if versionString does not match expected pattern

#### isEqualOrAbove

    public boolean isEqualOrAbove(int requiredMajorVersion,
                         int requiredMinorVersion)

Convenience method to check if the major.minor of this version is equal to or larger than the specified required version.

Parameters:
  `requiredMajorVersion` - Required major version
  `requiredMinorVersion` - Required minor version
Returns:
  `true` when current major is larger than required, or major is same and minor is equal to or larger than required

#### isEqualOrAbove

    public boolean isEqualOrAbove(int requiredMajorVersion,
                         int requiredMinorVersion,
                         int requiredVariant)

Convenience method to check if the major.minor.variant of this version is equal to or larger than the specified required version.

Parameters:
  `requiredMajorVersion` - Required major version
  `requiredMinorVersion` - Required minor version
  `requiredVariant` - Required variant version
Returns:
  `true` when current major is larger than required, or major is same and minor is equal to required and variant equal to or larger than required, or major is same and minor is larger than required