TupleOutput (Oracle - Berkeley DB Java Edition API)
Date: 2014-12-16

com.sleepycat.bind.tuple

## Class TupleOutput

- java.lang.Object
- - java.io.OutputStream
  - - com.sleepycat.util.FastOutputStream
    - - com.sleepycat.bind.tuple.TupleOutput

- All Implemented Interfaces:
    Closeable, Flushable, AutoCloseable

      public class TupleOutput
      extends FastOutputStream

  An `OutputStream` with `DataOutput`-like methods for writing tuple fields. It is used by `TupleBinding`.

  This class has many methods that have the same signatures as methods in the `DataOutput` interface. The reason this class does not implement `DataOutput` is because it would break the interface contract for those methods because of data format differences.

  Author:
    Mark Hayes
  See Also:
    Tuple Formats

- - ### Field Summary

    - ### Fields inherited from class com.sleepycat.util.FastOutputStream

      `DEFAULT_BUMP_SIZE, DEFAULT_INIT_SIZE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TupleOutput()` Creates a tuple output object for writing a byte array of tuple data.
    `TupleOutput(byte[] buffer)` Creates a tuple output object for writing a byte array of tuple data, using a given buffer.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static int` | `getBigDecimalMaxByteLength(BigDecimal val)` Returns the maximum byte length that would be output for a given `BigDecimal` value if `writeBigDecimal(java.math.BigDecimal)` were called.
    `static int` | `getBigIntegerByteLength(BigInteger val)` Returns the exact byte length that would would be output for a given `BigInteger` value if `writeBigInteger(java.math.BigInteger)` were called.
    `static int` | `getSortedBigDecimalMaxByteLength(BigDecimal val)` Returns the maximum byte length that would be output for a given `BigDecimal` value if `writeSortedBigDecimal(java.math.BigDecimal)` were called.
    `TupleOutput` | `writeBigDecimal(BigDecimal val)` Writes an unsorted `BigDecimal`.
    `TupleOutput` | `writeBigInteger(BigInteger val)` Writes a `BigInteger`.
    `TupleOutput` | `writeBoolean(boolean val)` Writes a boolean (one byte) unsigned value to the buffer, writing one if the value is true and zero if it is false.
    `TupleOutput` | `writeByte(int val)` Writes an signed byte (one byte) value to the buffer.
    `TupleOutput` | `writeBytes(char[] chars)` Writes the specified bytes to the buffer, converting each character to an unsigned byte value.
    `TupleOutput` | `writeBytes(String val)` Writes the specified bytes to the buffer, converting each character to an unsigned byte value.
    `TupleOutput` | `writeChar(int val)` Writes a char (two byte) unsigned value to the buffer.
    `TupleOutput` | `writeChars(char[] chars)` Writes the specified characters to the buffer, converting each character to a two byte unsigned value.
    `TupleOutput` | `writeChars(String val)` Writes the specified characters to the buffer, converting each character to a two byte unsigned value.
    `TupleOutput` | `writeDouble(double val)` Writes an unsorted double (eight byte) value to the buffer.
    `TupleOutput` | `writeFloat(float val)` Writes an unsorted float (four byte) value to the buffer.
    `TupleOutput` | `writeInt(int val)` Writes an signed int (four byte) value to the buffer.
    `TupleOutput` | `writeLong(long val)` Writes an signed long (eight byte) value to the buffer.
    `TupleOutput` | `writePackedInt(int val)` Writes an unsorted packed integer.
    `TupleOutput` | `writePackedLong(long val)` Writes an unsorted packed long integer.
    `TupleOutput` | `writeShort(int val)` Writes an signed short (two byte) value to the buffer.
    `TupleOutput` | `writeSortedBigDecimal(BigDecimal val)` Writes a sorted `BigDecimal`.
    `TupleOutput` | `writeSortedDouble(double val)` Writes a sorted double (eight byte) value to the buffer.
    `TupleOutput` | `writeSortedFloat(float val)` Writes a sorted float (four byte) value to the buffer.
    `TupleOutput` | `writeSortedPackedInt(int val)` Writes a sorted packed integer.
    `TupleOutput` | `writeSortedPackedLong(long val)` Writes a sorted packed long integer.
    `TupleOutput` | `writeString(char[] chars)` Writes the specified characters to the buffer, converting each character to UTF format.
    `TupleOutput` | `writeString(String val)` Writes the specified characters to the buffer, converting each character to UTF format, and adding a null terminator byte.
    `TupleOutput` | `writeUnsignedByte(int val)` Writes an unsigned byte (one byte) value to the buffer.
    `TupleOutput` | `writeUnsignedInt(long val)` Writes an unsigned int (four byte) value to the buffer.
    `TupleOutput` | `writeUnsignedShort(int val)` Writes an unsigned short (two byte) value to the buffer.

    - ### Methods inherited from class com.sleepycat.util.FastOutputStream

      `addSize, getBufferBytes, getBufferLength, getBufferOffset, makeSpace, reset, size, toByteArray, toString, toString, write, write, write, writeFast, writeFast, writeFast, writeTo`

    - ### Methods inherited from class java.io.OutputStream

      `close, flush`

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

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

- - ### Constructor Detail

    - #### TupleOutput

          public TupleOutput()

      Creates a tuple output object for writing a byte array of tuple data.

    - #### TupleOutput

          public TupleOutput(byte[] buffer)

      Creates a tuple output object for writing a byte array of tuple data, using a given buffer. A new buffer will be allocated only if the number of bytes needed is greater than the length of this buffer. A reference to the byte array will be kept by this object and therefore the byte array should not be modified while this object is in use.
      Parameters:
        `buffer` - is the byte array to use as the buffer.

  - ### Method Detail

    - #### writeBytes

          public final TupleOutput writeBytes(String val)

      Writes the specified bytes to the buffer, converting each character to an unsigned byte value. Writes values that can be read using `TupleInput.readBytes(int)`.
      Parameters:
        `val` - is the string containing the values to be written. Only characters with values below 0x100 may be written using this method, since the high-order 8 bits of all characters are discarded.
      Returns:
        this tuple output object.
      Throws:
        `NullPointerException` - if the val parameter is null.
      See Also:
        Integer Formats

    - #### writeChars

          public final TupleOutput writeChars(String val)

      Writes the specified characters to the buffer, converting each character to a two byte unsigned value. Writes values that can be read using `TupleInput.readChars(int)`.
      Parameters:
        `val` - is the string containing the characters to be written.
      Returns:
        this tuple output object.
      Throws:
        `NullPointerException` - if the val parameter is null.
      See Also:
        Integer Formats

    - #### writeString

          public final TupleOutput writeString(String val)

      Writes the specified characters to the buffer, converting each character to UTF format, and adding a null terminator byte. Writes values that can be read using `TupleInput.readString()`.
      Parameters:
        `val` - is the string containing the characters to be written.
      Returns:
        this tuple output object.
      See Also:
        String Formats

    - #### writeChar

          public final TupleOutput writeChar(int val)

      Writes a char (two byte) unsigned value to the buffer. Writes values that can be read using `TupleInput.readChar()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Integer Formats

    - #### writeBoolean

          public final TupleOutput writeBoolean(boolean val)

      Writes a boolean (one byte) unsigned value to the buffer, writing one if the value is true and zero if it is false. Writes values that can be read using `TupleInput.readBoolean()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Integer Formats

    - #### writeByte

          public final TupleOutput writeByte(int val)

      Writes an signed byte (one byte) value to the buffer. Writes values that can be read using `TupleInput.readByte()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Integer Formats

    - #### writeShort

          public final TupleOutput writeShort(int val)

      Writes an signed short (two byte) value to the buffer. Writes values that can be read using `TupleInput.readShort()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Integer Formats

    - #### writeInt

          public final TupleOutput writeInt(int val)

      Writes an signed int (four byte) value to the buffer. Writes values that can be read using `TupleInput.readInt()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Integer Formats

    - #### writeLong

          public final TupleOutput writeLong(long val)

      Writes an signed long (eight byte) value to the buffer. Writes values that can be read using `TupleInput.readLong()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Integer Formats

    - #### writeFloat

          public final TupleOutput writeFloat(float val)

      Writes an unsorted float (four byte) value to the buffer. Writes values that can be read using `TupleInput.readFloat()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Floating Point Formats

    - #### writeDouble

          public final TupleOutput writeDouble(double val)

      Writes an unsorted double (eight byte) value to the buffer. Writes values that can be read using `TupleInput.readDouble()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Floating Point Formats

    - #### writeSortedFloat

          public final TupleOutput writeSortedFloat(float val)

      Writes a sorted float (four byte) value to the buffer. Writes values that can be read using `TupleInput.readSortedFloat()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Floating Point Formats

    - #### writeSortedDouble

          public final TupleOutput writeSortedDouble(double val)

      Writes a sorted double (eight byte) value to the buffer. Writes values that can be read using `TupleInput.readSortedDouble()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Floating Point Formats

    - #### writeBytes

          public final TupleOutput writeBytes(char[] chars)

      Writes the specified bytes to the buffer, converting each character to an unsigned byte value. Writes values that can be read using `TupleInput.readBytes(int)`.
      Parameters:
        `chars` - is the array of values to be written. Only characters with values below 0x100 may be written using this method, since the high-order 8 bits of all characters are discarded.
      Returns:
        this tuple output object.
      Throws:
        `NullPointerException` - if the chars parameter is null.
      See Also:
        Integer Formats

    - #### writeChars

          public final TupleOutput writeChars(char[] chars)

      Writes the specified characters to the buffer, converting each character to a two byte unsigned value. Writes values that can be read using `TupleInput.readChars(int)`.
      Parameters:
        `chars` - is the array of characters to be written.
      Returns:
        this tuple output object.
      Throws:
        `NullPointerException` - if the chars parameter is null.
      See Also:
        Integer Formats

    - #### writeString

          public final TupleOutput writeString(char[] chars)

      Writes the specified characters to the buffer, converting each character to UTF format. Writes values that can be read using `TupleInput.readString(int)` or `TupleInput.readString(char[])`.
      Parameters:
        `chars` - is the array of characters to be written.
      Returns:
        this tuple output object.
      Throws:
        `NullPointerException` - if the chars parameter is null.
      See Also:
        String Formats

    - #### writeUnsignedByte

          public final TupleOutput writeUnsignedByte(int val)

      Writes an unsigned byte (one byte) value to the buffer. Writes values that can be read using `TupleInput.readUnsignedByte()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Integer Formats

    - #### writeUnsignedShort

          public final TupleOutput writeUnsignedShort(int val)

      Writes an unsigned short (two byte) value to the buffer. Writes values that can be read using `TupleInput.readUnsignedShort()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Integer Formats

    - #### writeUnsignedInt

          public final TupleOutput writeUnsignedInt(long val)

      Writes an unsigned int (four byte) value to the buffer. Writes values that can be read using `TupleInput.readUnsignedInt()`.
      Parameters:
        `val` - is the value to write to the buffer.
      Returns:
        this tuple output object.
      See Also:
        Integer Formats

    - #### writePackedInt

          public final TupleOutput writePackedInt(int val)

      Writes an unsorted packed integer.
      See Also:
        Integer Formats

    - #### writePackedLong

          public final TupleOutput writePackedLong(long val)

      Writes an unsorted packed long integer.
      See Also:
        Integer Formats

    - #### writeSortedPackedInt

          public final TupleOutput writeSortedPackedInt(int val)

      Writes a sorted packed integer.
      See Also:
        Integer Formats

    - #### writeSortedPackedLong

          public final TupleOutput writeSortedPackedLong(long val)

      Writes a sorted packed long integer.
      See Also:
        Integer Formats

    - #### writeBigInteger

          public final TupleOutput writeBigInteger(BigInteger val)

      Writes a `BigInteger`.
      Throws:
        `NullPointerException` - if val is null.
        `IllegalArgumentException` - if the byte array representation of val is larger than 0x7fff bytes.
      See Also:
        Integer Formats

    - #### getBigIntegerByteLength

          public static int getBigIntegerByteLength(BigInteger val)

      Returns the exact byte length that would would be output for a given `BigInteger` value if `writeBigInteger(java.math.BigInteger)` were called.
      See Also:
        Integer Formats

    - #### writeBigDecimal

          public final TupleOutput writeBigDecimal(BigDecimal val)

      Writes an unsorted `BigDecimal`.
      Throws:
        `NullPointerException` - if val is null.
      See Also:
        BigDecimal Formats

    - #### getBigDecimalMaxByteLength

          public static int getBigDecimalMaxByteLength(BigDecimal val)

      Returns the maximum byte length that would be output for a given `BigDecimal` value if `writeBigDecimal(java.math.BigDecimal)` were called.
      See Also:
        BigDecimal Formats

    - #### writeSortedBigDecimal

          public final TupleOutput writeSortedBigDecimal(BigDecimal val)

      Writes a sorted `BigDecimal`.
      See Also:
        BigDecimal Formats

    - #### getSortedBigDecimalMaxByteLength

          public static int getSortedBigDecimalMaxByteLength(BigDecimal val)

      Returns the maximum byte length that would be output for a given `BigDecimal` value if `writeSortedBigDecimal(java.math.BigDecimal)` were called.
      See Also:
        BigDecimal Formats

Copyright (c) 2004, 2014 Oracle and/or its affiliates. All rights reserved.