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 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
All Methods Static Methods Instance Methods Concrete Methods 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)
-
-
-
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:ExtendedType
Returns a full name of Java class that this ExtendedType supports.- Specified by:
getClassName
in interfaceExtendedType<byte[]>
-
materializeObject
public byte[] 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 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: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 Exception
Description copied from interface:ExtendedType
Initializes a single parameter of a PreparedStatement with object value.- Specified by:
setJdbcObject
in interfaceExtendedType<byte[]>
- Throws:
Exception
-
toString
public String toString(byte[] value)
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
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()
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)
-
-