org.apache.cayenne.access.types
Class ByteArrayType

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

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
protected  boolean trimmingBytes
           
protected  boolean usingBlobs
           
 
Constructor Summary
ByteArrayType(boolean trimmingBytes, boolean usingBlobs)
           
 
Method Summary
 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.
 boolean validateProperty(Object source, String property, Object value, DbAttribute dbAttribute, ValidationResult validationResult)
          Deprecated. since 3.0 as validation should not be done at the DataNode level.
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

validateProperty

public boolean validateProperty(Object source,
                                String property,
                                Object value,
                                DbAttribute dbAttribute,
                                ValidationResult validationResult)
Deprecated. since 3.0 as validation should not be done at the DataNode level.

Validates byte[] property.

Specified by:
validateProperty in interface ExtendedType
Since:
1.1

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 ocurred, 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-2011 Apache Cayenne. All Rights Reserved.