Package org.firebirdsql.gds.impl

## Class ParameterBufferBase

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

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Iterable<Parameter>`, `ParameterBuffer`
  Direct Known Subclasses:
    `BatchParameterBufferImp`, `BlobParameterBufferImp`, `DatabaseParameterBufferImp`, `ServiceParameterBufferImp`, `ServiceRequestBufferImp`, `TransactionParameterBufferImpl`

      public abstract class ParameterBufferBase
      extends java.lang.Object
      implements ParameterBuffer, java.io.Serializable

  Base class for parameter buffers
  Author:
    Mark Rotteveel
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `ParameterBufferBase​(ParameterBufferMetaData parameterBufferMetaData)` | Creates a `ParameterBufferBase`.
    `protected` | `ParameterBufferBase​(ParameterBufferMetaData parameterBufferMetaData, Encoding defaultEncoding)` | Creates a `ParameterBufferBase`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addArgument​(int argumentType)` | Add argument with no parameters.
    `void` | `addArgument​(int argumentType, byte value)` | Add a byte argument.
    `void` | `addArgument​(int type, byte[] content)` | Add array of bytes.
    `void` | `addArgument​(int argumentType, int value)` | Add integer argument.
    `void` | `addArgument​(int argumentType, long value)` | Add long argument.
    `void` | `addArgument​(int argumentType, java.lang.String value)` | Add string argument with the default encoding.
    `void` | `addArgument​(int argumentType, java.lang.String value, Encoding encoding)` | Add string argument.
    `boolean` | `equals​(java.lang.Object other)` |
    `int` | `getArgumentAsInt​(int type)` | Get argument as int.
    `java.lang.String` | `getArgumentAsString​(int type)` | Get argument as string.
    `protected java.util.List<Argument>` | `getArgumentsList()` |
    `Encoding` | `getDefaultEncoding()` |
    `protected int` | `getLength()` |
    `ParameterBufferMetaData` | `getParameterBufferMetaData()` |
    `int` | `getType()` |
    `boolean` | `hasArgument​(int type)` | Check if this parameter buffer has specified argument.
    `int` | `hashCode()` |
    `java.util.Iterator<Parameter>` | `iterator()` | Returns an iterator over a copy of the parameters in this parameter buffer.
    `void` | `removeArgument​(int type)` | Remove specified argument.
    `int` | `size()` |
    `byte[]` | `toBytes()` | Converts this parameter buffer to a byte array.
    `byte[]` | `toBytesWithType()` | Converts this parameter buffer to a byte array with type information.
    `Xdrable` | `toXdrable()` |
    `void` | `writeArgumentsTo​(java.io.OutputStream outputStream)` | Writes the arguments in the implementation specific serialization into the `OutputStream`.

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

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

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### ParameterBufferBase

          protected ParameterBufferBase​(ParameterBufferMetaData parameterBufferMetaData)

      Creates a `ParameterBufferBase`.

      This uses a default encoding derived from the system default encoding. You usually want to use `ParameterBufferBase(ParameterBufferMetaData, Encoding)` instead.

      Parameters:
        `parameterBufferMetaData` - Metadata for the parameter buffer.

    - #### ParameterBufferBase

          protected ParameterBufferBase​(ParameterBufferMetaData parameterBufferMetaData,
                                        Encoding defaultEncoding)

      Creates a `ParameterBufferBase`.
      Parameters:
        `parameterBufferMetaData` - Metadata for the parameter buffer.
        `defaultEncoding` - Default encoding to use for string arguments

  - ### Method Detail

    - #### getDefaultEncoding

          public final Encoding getDefaultEncoding()

    - #### getParameterBufferMetaData

          public final ParameterBufferMetaData getParameterBufferMetaData()

    - #### getType

          public final int getType()

      Specified by:
        `getType` in interface `ParameterBuffer`
      Returns:
        The parameter buffer type identifier

    - #### addArgument

          public final void addArgument​(int argumentType,
                                        java.lang.String value)

      Description copied from interface: `ParameterBuffer`
      Add string argument with the default encoding.
      Specified by:
        `addArgument` in interface `ParameterBuffer`
      Parameters:
        `argumentType` - type of argument.
        `value` - string value to add.

    - #### addArgument

          public final void addArgument​(int argumentType,
                                        java.lang.String value,
                                        Encoding encoding)

      Description copied from interface: `ParameterBuffer`
      Add string argument.
      Specified by:
        `addArgument` in interface `ParameterBuffer`
      Parameters:
        `argumentType` - type of argument.
        `value` - string value to add.
        `encoding` - encoding to use for conversion to bytes

    - #### addArgument

          public void addArgument​(int argumentType,
                                  byte value)

      Description copied from interface: `ParameterBuffer`
      Add a byte argument.
      Specified by:
        `addArgument` in interface `ParameterBuffer`
      Parameters:
        `argumentType` - type of argument.
        `value` - byte value to add.

    - #### addArgument

          public final void addArgument​(int argumentType,
                                        int value)

      Description copied from interface: `ParameterBuffer`
      Add integer argument.
      Specified by:
        `addArgument` in interface `ParameterBuffer`
      Parameters:
        `argumentType` - type of argument.
        `value` - integer value to add.

    - #### addArgument

          public final void addArgument​(int argumentType,
                                        long value)

      Description copied from interface: `ParameterBuffer`
      Add long argument.
      Specified by:
        `addArgument` in interface `ParameterBuffer`
      Parameters:
        `argumentType` - type of argument.
        `value` - long value to add.

    - #### addArgument

          public final void addArgument​(int argumentType)

      Description copied from interface: `ParameterBuffer`
      Add argument with no parameters.
      Specified by:
        `addArgument` in interface `ParameterBuffer`
      Parameters:
        `argumentType` - type of argument.

    - #### addArgument

          public final void addArgument​(int type,
                                        byte[] content)

      Description copied from interface: `ParameterBuffer`
      Add array of bytes.
      Specified by:
        `addArgument` in interface `ParameterBuffer`
      Parameters:
        `type` - type of argument.
        `content` - content of argument.

    - #### getArgumentAsString

          public final java.lang.String getArgumentAsString​(int type)

      Description copied from interface: `ParameterBuffer`
      Get argument as string.
      Specified by:
        `getArgumentAsString` in interface `ParameterBuffer`
      Parameters:
        `type` - type of argument to find.
      Returns:
        argument as string or `null` if nothing found.

    - #### getArgumentAsInt

          public final int getArgumentAsInt​(int type)

      Description copied from interface: `ParameterBuffer`
      Get argument as int.
      Specified by:
        `getArgumentAsInt` in interface `ParameterBuffer`
      Parameters:
        `type` - type of argument to find.
      Returns:
        argument as string or `0` if nothing found.

    - #### hasArgument

          public final boolean hasArgument​(int type)

      Description copied from interface: `ParameterBuffer`
      Check if this parameter buffer has specified argument.
      Specified by:
        `hasArgument` in interface `ParameterBuffer`
      Parameters:
        `type` - type of argument to find.
      Returns:
        `true` if this buffer contains specified argument.

    - #### removeArgument

          public final void removeArgument​(int type)

      Description copied from interface: `ParameterBuffer`
      Remove specified argument.
      Specified by:
        `removeArgument` in interface `ParameterBuffer`
      Parameters:
        `type` - type of argument to remove.

    - #### iterator

          public final java.util.Iterator<Parameter> iterator()

      Description copied from interface: `ParameterBuffer`
      Returns an iterator over a copy of the parameters in this parameter buffer.

      It is safe to iterate over this iterator while modifying the parameter buffer. Changes will not be reflected in the iterator.

      Specified by:
        `iterator` in interface `java.lang.Iterable<Parameter>`
      Specified by:
        `iterator` in interface `ParameterBuffer`
      Returns:
        Iterator over the parameters in this parameter buffer.

    - #### writeArgumentsTo

          public final void writeArgumentsTo​(java.io.OutputStream outputStream)
                                      throws java.io.IOException

      Description copied from interface: `ParameterBuffer`
      Writes the arguments in the implementation specific serialization into the `OutputStream`.
      Specified by:
        `writeArgumentsTo` in interface `ParameterBuffer`
      Parameters:
        `outputStream` - The `OutputStream` to write to
      Throws:
        `java.io.IOException` - Errors produced by the output stream during writes

    - #### toXdrable

          public final Xdrable toXdrable()

      Specified by:
        `toXdrable` in interface `ParameterBuffer`
      Returns:
        `Xdrable` to write (and optionally read) this instance as Xdr.

    - #### getLength

          protected final int getLength()

    - #### getArgumentsList

          protected final java.util.List<Argument> getArgumentsList()

    - #### toBytes

          public final byte[] toBytes()

      Description copied from interface: `ParameterBuffer`
      Converts this parameter buffer to a byte array.

      This byte array includes the extra header-bytes (if any), but does not include the type information

      Specified by:
        `toBytes` in interface `ParameterBuffer`
      Returns:
        Byte array with serialization of this parameter buffer
      See Also:
        `ParameterBuffer.toBytesWithType()`

    - #### toBytesWithType

          public final byte[] toBytesWithType()

      Description copied from interface: `ParameterBuffer`
      Converts this parameter buffer to a byte array with type information.

      This byte array includes the type information and the extra header bytes (if any).

      Specified by:
        `toBytesWithType` in interface `ParameterBuffer`
      Returns:
        Byte array with serialization of this parameter buffer
      See Also:
        `ParameterBuffer.toBytes()`

    - #### size

          public final int size()

      Specified by:
        `size` in interface `ParameterBuffer`
      Returns:
        the number of parameters stored.

    - #### equals

          public final boolean equals​(java.lang.Object other)

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

    - #### hashCode

          public final int hashCode()

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