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[]>
Handlesbyte[], 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 booleantrimmingBytesprotected booleanusingBlobs-
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 StringgetClassName()Returns a full name of Java class that this ExtendedType supports.booleanisTrimmingBytes()booleanisUsingBlobs()Returnstrueif byte columns are handled as BLOBs internally.static voidlogBytes(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)voidsetJdbcObject(PreparedStatement st, byte[] val, int pos, int type, int scale)Initializes a single parameter of a PreparedStatement with object value.voidsetTrimmingBytes(boolean trimingBytes)voidsetUsingBlobs(boolean usingBlobs)StringtoString(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 BlobwriteBlob(byte[] bytes)
-
-
-
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:ExtendedTypeReturns a full name of Java class that this ExtendedType supports.- Specified by:
getClassNamein interfaceExtendedType<byte[]>
-
materializeObject
public byte[] materializeObject(ResultSet rs, int index, int type) throws Exception
Description copied from interface:ExtendedTypeReads an object from JDBC ResultSet column, converting it to class returned by 'getClassName' method.- Specified by:
materializeObjectin interfaceExtendedType<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:ExtendedTypeReads an object from a stored procedure OUT parameter, converting it to class returned by 'getClassName' method.- Specified by:
materializeObjectin interfaceExtendedType<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:ExtendedTypeInitializes a single parameter of a PreparedStatement with object value.- Specified by:
setJdbcObjectin interfaceExtendedType<byte[]>- Throws:
Exception
-
toString
public String toString(byte[] value)
Description copied from interface:ExtendedTypeConverts value of the supported type to a human-readable String representation.- Specified by:
toStringin interfaceExtendedType<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:
IOExceptionSQLException
-
readBinaryStream
protected byte[] readBinaryStream(ResultSet rs, int index) throws IOException, SQLException
- Throws:
IOExceptionSQLException
-
readValueStream
protected byte[] readValueStream(InputStream in, int streamSize, int bufSize) throws IOException
- Throws:
IOException
-
isUsingBlobs
public boolean isUsingBlobs()
Returnstrueif byte columns are handled as BLOBs internally.
-
setUsingBlobs
public void setUsingBlobs(boolean usingBlobs)
-
isTrimmingBytes
public boolean isTrimmingBytes()
-
setTrimmingBytes
public void setTrimmingBytes(boolean trimingBytes)
-
-