org.apache.cayenne.access.types
Class ByteArrayType

java.lang.Object
  extended by org.apache.cayenne.access.types.ByteArrayType
All Implemented Interfaces:
ExtendedType
Direct Known Subclasses:
OracleByteArrayType

public class ByteArrayType
extends java.lang.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
protected  boolean trimmingBytes
           
protected  boolean usingBlobs
           
 
Constructor Summary
ByteArrayType(boolean trimmingBytes, boolean usingBlobs)
           
 
Method Summary
 java.lang.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.
 java.lang.Object materializeObject(java.sql.CallableStatement cs, int index, int type)
          Reads an object from a stored procedure OUT parameter, converting it to class returned by 'getClassName' method.
 java.lang.Object materializeObject(java.sql.ResultSet rs, int index, int type)
          Reads an object from JDBC ResultSet column, converting it to class returned by 'getClassName' method.
protected  byte[] readBinaryStream(java.sql.ResultSet rs, int index)
           
protected  byte[] readBlob(java.sql.Blob blob)
           
protected  byte[] readValueStream(java.io.InputStream in, int streamSize, int bufSize)
           
 void setJdbcObject(java.sql.PreparedStatement st, java.lang.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  java.sql.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 java.lang.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 java.lang.Object materializeObject(java.sql.ResultSet rs,
                                          int index,
                                          int type)
                                   throws java.lang.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:
java.lang.Exception - if read error occurred, or an object can't be converted to a target Java class.

materializeObject

public java.lang.Object materializeObject(java.sql.CallableStatement cs,
                                          int index,
                                          int type)
                                   throws java.lang.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:
java.lang.Exception - if read error ocurred, or an object can't be converted to a target Java class.

setJdbcObject

public void setJdbcObject(java.sql.PreparedStatement st,
                          java.lang.Object val,
                          int pos,
                          int type,
                          int scale)
                   throws java.lang.Exception
Description copied from interface: ExtendedType
Initializes a single parameter of a PreparedStatement with object value.

Specified by:
setJdbcObject in interface ExtendedType
Throws:
java.lang.Exception

writeBlob

protected java.sql.Blob writeBlob(byte[] bytes)

readBlob

protected byte[] readBlob(java.sql.Blob blob)
                   throws java.io.IOException,
                          java.sql.SQLException
Throws:
java.io.IOException
java.sql.SQLException

readBinaryStream

protected byte[] readBinaryStream(java.sql.ResultSet rs,
                                  int index)
                           throws java.io.IOException,
                                  java.sql.SQLException
Throws:
java.io.IOException
java.sql.SQLException

readValueStream

protected byte[] readValueStream(java.io.InputStream in,
                                 int streamSize,
                                 int bufSize)
                          throws java.io.IOException
Throws:
java.io.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-2012 Apache Cayenne. All Rights Reserved.