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 booleantrimmingBytesprotected booleanusingBlobsFields inherited from interface org.apache.cayenne.access.types.ExtendedType
TRIM_VALUES_THRESHOLD -
Constructor Summary
Constructors Constructor Description ByteArrayType(boolean trimmingBytes, boolean usingBlobs) -
Method Summary
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)
-
Field Details
-
trimmingBytes
protected boolean trimmingBytes -
usingBlobs
protected boolean usingBlobs
-
-
Constructor Details
-
ByteArrayType
public ByteArrayType(boolean trimmingBytes, boolean usingBlobs)
-
-
Method Details
-
logBytes
-
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
Description copied from interface:ExtendedTypeReturns a full name of Java class that this ExtendedType supports.- Specified by:
getClassNamein interfaceExtendedType<byte[]>
-
materializeObject
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
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 ExceptionDescription copied from interface:ExtendedTypeInitializes a single parameter of a PreparedStatement with object value.- Specified by:
setJdbcObjectin interfaceExtendedType<byte[]>- Throws:
Exception
-
toString
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
-
readBlob
- Throws:
IOExceptionSQLException
-
readBinaryStream
- Throws:
IOExceptionSQLException
-
readValueStream
- 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)
-