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 boolean
trimmingBytes
protected boolean
usingBlobs
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
Modifier and Type Method Description String
getClassName()
Returns a full name of Java class that this ExtendedType supports.boolean
isTrimmingBytes()
boolean
isUsingBlobs()
Returnstrue
if byte columns are handled as BLOBs internally.static void
logBytes(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)
void
setJdbcObject(PreparedStatement st, byte[] 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)
String
toString(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 Blob
writeBlob(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:ExtendedType
Returns a full name of Java class that this ExtendedType supports.- Specified by:
getClassName
in interfaceExtendedType<byte[]>
-
materializeObject
Description copied from interface:ExtendedType
Reads an object from JDBC ResultSet column, converting it to class returned by 'getClassName' method.- Specified by:
materializeObject
in 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:ExtendedType
Reads an object from a stored procedure OUT parameter, converting it to class returned by 'getClassName' method.- Specified by:
materializeObject
in 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:ExtendedType
Initializes a single parameter of a PreparedStatement with object value.- Specified by:
setJdbcObject
in interfaceExtendedType<byte[]>
- Throws:
Exception
-
toString
Description copied from interface:ExtendedType
Converts value of the supported type to a human-readable String representation.- Specified by:
toString
in interfaceExtendedType<byte[]>
- Parameters:
value
- a value to convert to String.
-
writeBlob
-
readBlob
- Throws:
IOException
SQLException
-
readBinaryStream
- Throws:
IOException
SQLException
-
readValueStream
- Throws:
IOException
-
isUsingBlobs
public boolean isUsingBlobs()Returnstrue
if byte columns are handled as BLOBs internally. -
setUsingBlobs
public void setUsingBlobs(boolean usingBlobs) -
isTrimmingBytes
public boolean isTrimmingBytes() -
setTrimmingBytes
public void setTrimmingBytes(boolean trimingBytes)
-