Package org.apache.cayenne.access.types

## Class ByteArrayType

- java.lang.Object
- - org.apache.cayenne.access.types.ByteArrayType

- All Implemented Interfaces:
    `ExtendedType<byte[]>`
  Direct Known Subclasses:
    `OracleByteArrayType`

      public class ByteArrayType
      extends Object
      implements ExtendedType<byte[]>

  Handles `byte[]`, mapping it as either of JDBC types - BLOB or (VAR)BINARY. Can be configured to trim trailing zero bytes.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected boolean` | `trimmingBytes` |
    `protected boolean` | `usingBlobs` |

    - ### Fields inherited from interface org.apache.cayenne.access.types.ExtendedType

      `TRIM_VALUES_THRESHOLD`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ByteArrayType​(boolean trimmingBytes, boolean usingBlobs)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | `getClassName()` | Returns a full name of Java class that this ExtendedType supports.
    `boolean` | `isTrimmingBytes()` |
    `boolean` | `isUsingBlobs()` | Returns `true` if byte columns are handled as BLOBs internally.
    `static void` | `logBytes​(StringBuilder buffer, byte[] bytes)` |
    `byte[]` | `materializeObject​(CallableStatement cs, int index, int type)` | Reads an object from a stored procedure OUT parameter, converting it to class returned by 'getClassName' method.
    `byte[]` | `materializeObject​(ResultSet rs, int index, int type)` | Reads an object from JDBC ResultSet column, converting it to class returned by 'getClassName' method.
    `protected byte[]` | `readBinaryStream​(ResultSet rs, int index)` |
    `protected byte[]` | `readBlob​(Blob blob)` |
    `protected byte[]` | `readValueStream​(InputStream in, int streamSize, int bufSize)` |
    `void` | `setJdbcObject​(PreparedStatement st, byte[] val, int pos, int type, int scale)` | Initializes a single parameter of a PreparedStatement with object value.
    `void` | `setTrimmingBytes​(boolean trimingBytes)` |
    `void` | `setUsingBlobs​(boolean usingBlobs)` |
    `String` | `toString​(byte[] value)` | Converts value of the supported type to a human-readable String representation.
    `static byte[]` | `trimBytes​(byte[] bytes)` | Strips null bytes from the byte array, returning a potentially smaller array that contains no trailing zero bytes.
    `protected Blob` | `writeBlob​(byte[] bytes)` |

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

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

    - ### Methods inherited from interface org.apache.cayenne.access.types.ExtendedType

      `readProcessor, writeProcessor`

- - ### Field Detail

    - #### trimmingBytes

          protected boolean trimmingBytes

    - #### usingBlobs

          protected boolean usingBlobs

  - ### Constructor Detail

    - #### ByteArrayType

          public ByteArrayType​(boolean trimmingBytes,
                               boolean usingBlobs)

  - ### Method Detail

    - #### logBytes

          public static void logBytes​(StringBuilder buffer,
                                      byte[] bytes)

    - #### trimBytes

          public static byte[] trimBytes​(byte[] bytes)

      Strips null bytes from the byte array, returning a potentially smaller array that contains no trailing zero bytes.

    - #### getClassName

          public String getClassName()

      Description copied from interface: `ExtendedType`
      Returns a full name of Java class that this ExtendedType supports.
      Specified by:
        `getClassName` in interface `ExtendedType<byte[]>`

    - #### materializeObject

          public byte[] materializeObject​(ResultSet rs,
                                          int index,
                                          int type)
                                   throws Exception

      Description copied from interface: `ExtendedType`
      Reads an object from JDBC ResultSet column, converting it to class returned by 'getClassName' method.
      Specified by:
        `materializeObject` in interface `ExtendedType<byte[]>`
      Throws:
        `Exception` - if read error occurred, or an object can't be converted to a target Java class.

    - #### materializeObject

          public byte[] materializeObject​(CallableStatement cs,
                                          int index,
                                          int type)
                                   throws Exception

      Description copied from interface: `ExtendedType`
      Reads an object from a stored procedure OUT parameter, converting it to class returned by 'getClassName' method.
      Specified by:
        `materializeObject` in interface `ExtendedType<byte[]>`
      Throws:
        `Exception` - if read error occurred, or an object can't be converted to a target Java class.

    - #### setJdbcObject

          public void setJdbcObject​(PreparedStatement st,
                                    byte[] val,
                                    int pos,
                                    int type,
                                    int scale)
                             throws Exception

      Description copied from interface: `ExtendedType`
      Initializes a single parameter of a PreparedStatement with object value.
      Specified by:
        `setJdbcObject` in interface `ExtendedType<byte[]>`
      Throws:
        `Exception`

    - #### toString

          public String toString​(byte[] value)

      Description copied from interface: `ExtendedType`
      Converts value of the supported type to a human-readable String representation.
      Specified by:
        `toString` in interface `ExtendedType<byte[]>`
      Parameters:
        `value` - a value to convert to String.

    - #### writeBlob

          protected Blob writeBlob​(byte[] bytes)

    - #### readBlob

          protected byte[] readBlob​(Blob blob)
                             throws IOException,
                                    SQLException

      Throws:
        `IOException`
        `SQLException`

    - #### readBinaryStream

          protected byte[] readBinaryStream​(ResultSet rs,
                                            int index)
                                     throws IOException,
                                            SQLException

      Throws:
        `IOException`
        `SQLException`

    - #### readValueStream

          protected byte[] readValueStream​(InputStream in,
                                           int streamSize,
                                           int bufSize)
                                    throws IOException

      Throws:
        `IOException`

    - #### isUsingBlobs

          public boolean isUsingBlobs()

      Returns `true` if byte columns are handled as BLOBs internally.

    - #### setUsingBlobs

          public void setUsingBlobs​(boolean usingBlobs)

    - #### isTrimmingBytes

          public boolean isTrimmingBytes()

    - #### setTrimmingBytes

          public void setTrimmingBytes​(boolean trimingBytes)