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

    Methods
    Modifier and Type | Method and 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`

Copyright © 2001-2021 Jaybird (Firebird JDBC/JCA) team. All rights reserved.