Package org.firebirdsql.gds

## Class VaxEncoding

- java.lang.Object
- - org.firebirdsql.gds.VaxEncoding

-     public final class VaxEncoding
      extends java.lang.Object

  Helper methods for decoding Vax style (little endian) integers as used by Firebird from byte arrays.
  Since:
    3.0
  Author:
    Mark Rotteveel

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | `encodeVaxInteger​(java.io.OutputStream stream, int value)` | Encodes an integer using vax encoding into the output stream, length prefix is included.
    `static void` | `encodeVaxInteger2WithoutLength​(java.io.OutputStream stream, int value)` | Encodes an integer using two byte vax encoding into the output stream, without length prefix.
    `static void` | `encodeVaxIntegerWithoutLength​(java.io.OutputStream stream, int value)` | Encodes an integer using vax encoding into the output stream, without length prefix.
    `static void` | `encodeVaxLong​(java.io.OutputStream stream, long value)` | Encodes a long using vax encoding into the output stream, length prefix is included.
    `static void` | `encodeVaxLongWithoutLength​(java.io.OutputStream stream, long value)` | Encodes a long using vax encoding into the output stream, without length prefix.
    `static int` | `iscVaxInteger​(byte[] buffer, int startPosition, int length)` | Reads Vax style integers from the supplied buffer, starting at `startPosition` and reading for `length` bytes.
    `static int` | `iscVaxInteger2​(byte[] buffer, int startPosition)` | Variant of `iscVaxInteger(byte[], int, int)` specifically for two-byte integers.
    `static long` | `iscVaxLong​(byte[] buffer, int startPosition, int length)` | Reads Vax style integers from the supplied buffer, starting at `startPosition` and reading for `length` bytes.

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### iscVaxInteger

          public static int iscVaxInteger​(byte[] buffer,
                                          int startPosition,
                                          int length)

      Reads Vax style integers from the supplied buffer, starting at `startPosition` and reading for `length` bytes.

      This method is useful for lengths up to 4 bytes (ie normal Java integers (`int`). For larger lengths it will return `0`. Use `iscVaxLong(byte[], int, int)` for reading values with length up to 8 bytes. For decoding 2 byte integers, use `iscVaxInteger2(byte[], int)` for optimal performance.

      Parameters:
        `buffer` - The byte array from which the integer is to be retrieved
        `startPosition` - The offset starting position from which to start retrieving byte values
        `length` - number of bytes to read
      Returns:
        The integer value retrieved from the bytes
      See Also:
        `iscVaxLong(byte[], int, int)`, `iscVaxInteger2(byte[], int)`

    - #### encodeVaxInteger

          public static void encodeVaxInteger​(java.io.OutputStream stream,
                                              int value)
                                       throws java.io.IOException

      Encodes an integer using vax encoding into the output stream, length prefix is included.
      Parameters:
        `stream` - Output stream to write
        `value` - Value to encode
      Throws:
        `java.io.IOException`

    - #### encodeVaxIntegerWithoutLength

          public static void encodeVaxIntegerWithoutLength​(java.io.OutputStream stream,
                                                           int value)
                                                    throws java.io.IOException

      Encodes an integer using vax encoding into the output stream, without length prefix.
      Parameters:
        `stream` - Output stream to write
        `value` - Value to encode
      Throws:
        `java.io.IOException`

    - #### iscVaxLong

          public static long iscVaxLong​(byte[] buffer,
                                        int startPosition,
                                        int length)

      Reads Vax style integers from the supplied buffer, starting at `startPosition` and reading for `length` bytes.

      This method is useful for lengths up to 8 bytes (ie normal Java longs (`long`). For larger lengths it will return `0`.

      Parameters:
        `buffer` - The byte array from which the integer is to be retrieved
        `startPosition` - The offset starting position from which to start retrieving byte values
        `length` - number of bytes to read
      Returns:
        The integer value retrieved from the bytes
      See Also:
        `iscVaxInteger(byte[], int, int)`, `iscVaxInteger2(byte[], int)`

    - #### encodeVaxLong

          public static void encodeVaxLong​(java.io.OutputStream stream,
                                           long value)
                                    throws java.io.IOException

      Encodes a long using vax encoding into the output stream, length prefix is included.
      Parameters:
        `stream` - Output stream to write
        `value` - Value to encode
      Throws:
        `java.io.IOException`

    - #### encodeVaxLongWithoutLength

          public static void encodeVaxLongWithoutLength​(java.io.OutputStream stream,
                                                        long value)
                                                 throws java.io.IOException

      Encodes a long using vax encoding into the output stream, without length prefix.
      Parameters:
        `stream` - Output stream to write
        `value` - Value to encode
      Throws:
        `java.io.IOException`

    - #### iscVaxInteger2

          public static int iscVaxInteger2​(byte[] buffer,
                                           int startPosition)

      Variant of `iscVaxInteger(byte[], int, int)` specifically for two-byte integers.
      Parameters:
        `buffer` - The byte array from which the integer is to be retrieved
        `startPosition` - The offset starting position from which to start retrieving byte values
      Returns:
        The integer value retrieved from the bytes
      See Also:
        `iscVaxInteger(byte[], int, int)`, `iscVaxLong(byte[], int, int)`

    - #### encodeVaxInteger2WithoutLength

          public static void encodeVaxInteger2WithoutLength​(java.io.OutputStream stream,
                                                            int value)
                                                     throws java.io.IOException

      Encodes an integer using two byte vax encoding into the output stream, without length prefix.
      Parameters:
        `stream` - Output stream to write
        `value` - Value to encode
      Throws:
        `java.io.IOException`