org.apache.cayenne.access.types

## Class ByteArrayType

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

- All Implemented Interfaces:
    ExtendedType
  Direct Known Subclasses:
    OracleByteArrayType

      public class ByteArrayType
      extends Object
      implements ExtendedType

  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 and Description
    --- | ---
    `protected boolean` | `trimmingBytes`
    `protected boolean` | `usingBlobs`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ByteArrayType(boolean trimmingBytes, boolean usingBlobs)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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.
    `Object` | `materializeObject(CallableStatement cs, int index, int type)` Reads an object from a stored procedure OUT parameter, converting it to class returned by 'getClassName' method.
    `Object` | `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, Object 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)`
    `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`

- - ### Field Detail

    - #### trimmingBytes

          protected boolean trimmingBytes

    - #### usingBlobs

          protected boolean usingBlobs

  - ### Constructor Detail

    - #### ByteArrayType

          public ByteArrayType(boolean trimmingBytes,
                               boolean usingBlobs)

  - ### Method Detail

    - #### 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`

    - #### materializeObject

          public Object 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`
      Throws:
        `Exception` - if read error occurred, or an object can't be converted to a target Java class.

    - #### materializeObject

          public Object 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`
      Throws:
        `Exception` - if read error ocurred, or an object can't be converted to a target Java class.

    - #### setJdbcObject

          public void setJdbcObject(PreparedStatement st,
                                    Object 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`
      Throws:
        `Exception`

    - #### 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)

Copyright © 2001–2018 Apache Cayenne. All rights reserved.