Class SQLBinary
- java.lang.Object
-
- org.apache.derby.iapi.types.DataType
-
- org.apache.derby.iapi.types.SQLBinary
-
- All Implemented Interfaces:
java.io.Externalizable,java.io.Serializable,java.lang.Comparable,Formatable,Storable,StreamStorable,TypedFormat,BitDataValue,ConcatableDataValue,DataValueDescriptor,Orderable,VariableSizeDataValue
abstract class SQLBinary extends DataType implements BitDataValue
SQLBinary is the abstract class for the binary datatypes.- CHAR FOR BIT DATA
- VARCHAR FOR BIT DATA
- LONG VARCHAR
- BLOB
Format :
Length is encoded to support Cloudscape 5.x databases where the length was stored as the number of bits. The first bit of the first byte indicates if the format is an old (Cloudscape 5.x) style or a new Derby style. Derby then uses the next two bits to indicate how the length is encoded.
is one of N styles. - (5.x format zero) 4 byte Java format integer value 0 - either
is 0 bytes/bits or an unknown number of bytes. - (5.x format bits) 4 byte Java format integer value >0 (positive) - number of bits in raw data, number of bytes in
is the minimum number of bytes required to store the number of bits. - (Derby format) 1 byte encoded length (0 <= L <= 31) - number of bytes of raw data - encoded = 0x80 & L
- (Derby format) 3 byte encoded length (32 <= L < 64k) - number of bytes of raw data - encoded = 0xA0
- (Derby format) 5 byte encoded length (64k <= L < 2G) - number of bytes of raw data - encoded = 0xC0
- (future) to be determined L >= 2G - encoded 0xE0
(0xE0 is an esacape to allow any number of arbitary encodings in the future). - (5.x format bits) 4 byte Java format integer value >0 (positive) - number of bits in raw data, number of bytes in
When the value was written from a byte array the Derby encoded byte length format was always used from Derby 10.0 onwards (ie. all open source versions).
When the value was written from a stream (e.g. PreparedStatement.setBinaryStream) then the Cloudscape '5.x format zero' was used by 10.0 and 10.1. The was due to the class RawToBinaryFormatStream always writing four zero bytes for the length before the data.
The Cloudscape '5.x format bits' format I think was never used by Derby.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.sql.Blob_blobValueprivate static intBASE_MEMORY_USAGE(package private) byte[]dataValueprivate static intLEN_OF_BUFFER_TO_WRITE_BLOB(package private) static bytePAD(package private) java.io.InputStreamstreamValue as a stream, this stream represents the on-disk format of the value.(package private) intstreamValueLengthLength of the value in bytes when this value is set as a stream.-
Fields inherited from interface org.apache.derby.iapi.types.DataValueDescriptor
UNKNOWN_LOGICAL_LENGTH
-
Fields inherited from interface org.apache.derby.iapi.types.Orderable
ORDER_OP_EQUALS, ORDER_OP_GREATEROREQUALS, ORDER_OP_GREATERTHAN, ORDER_OP_LESSOREQUALS, ORDER_OP_LESSTHAN
-
Fields inherited from interface org.apache.derby.iapi.types.VariableSizeDataValue
IGNORE_PRECISION
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description NumberDataValuecharLength(NumberDataValue result)This method implements the char_length function for bit.voidcheckHostVariable(int declaredLength)Host variables are rejected if their length is bigger than the declared length, regardless of if the trailing bytes are the pad character.DataValueDescriptorcloneHolder()Shallow clone a StreamStorable without objectifying.DataValueDescriptorcloneValue(boolean forceMaterialization)Clone this DataValueDescriptor.private static intcompare(byte[] left, byte[] right)booleancompare(int op, DataValueDescriptor other, boolean orderedNulls, boolean unknownRV)Compare this Orderable with a given Orderable for the purpose of qualification and sorting.intcompare(DataValueDescriptor other)Compare this Orderable with a given Orderable for the purpose of index positioning.BitDataValueconcatenate(BitDataValue left, BitDataValue right, BitDataValue result)The SQL concatenation '||' operator.BooleanDataValueequals(DataValueDescriptor left, DataValueDescriptor right)The = operator as called from the language module, as opposed to the storage module.intestimateMemoryUsage()Estimate the memory usage in bytes of the data value and the overhead of the class.private intgetBlobLength()byte[]getBytes()Gets the value in the data value descriptor as a byte[].intgetLength()length in bytes(package private) abstract intgetMaxMemoryUsage()Return max memory usage for a SQL Binaryjava.io.InputStreamgetStream()Gets the value in the data stream descriptor as an InputStream.java.lang.StringgetString()Used by JDBC -- string should not contain SQL92 formatting.java.lang.StringgetTraceString()Gets a trace representation for debugging.(package private) byte[]getValue()BooleanDataValuegreaterOrEquals(DataValueDescriptor left, DataValueDescriptor right)The >= operator as called from the language module, as opposed to the storage module.BooleanDataValuegreaterThan(DataValueDescriptor left, DataValueDescriptor right)The > operator as called from the language module, as opposed to the storage module.inthashCode()booleanisNull()see if the Bit value is null.BooleanDataValuelessOrEquals(DataValueDescriptor left, DataValueDescriptor right)The <= operator as called from the language module, as opposed to the storage module.BooleanDataValuelessThan(DataValueDescriptor left, DataValueDescriptor right)The < operator as called from the language module, as opposed to the storage module.voidloadStream()Set the value by reading the stream and converting it to an object form.BooleanDataValuenotEquals(DataValueDescriptor left, DataValueDescriptor right)The <> operator as called from the language module, as opposed to the storage module.(package private) booleanobjectNull(java.lang.Object o)private static intreadBinaryLength(java.io.ObjectInput in)Read the encoded length of the value from the on-disk format.voidreadExternal(java.io.ObjectInput in)delegated to bitprivate voidreadFromStream(java.io.InputStream in)Read the value from an input stream.voidrestoreToNull()Restore this object to its (SQL)null value.java.io.InputStreamreturnStream()Return the on-disk stream state of the object.protected voidsetFrom(DataValueDescriptor theValue)Set the value of this DataValueDescriptor based on the value of the specified DataValueDescriptor.voidsetInto(java.sql.PreparedStatement ps, int position)Adding this method to ensure that super class' setInto method doesn't get called that leads to the violation of JDBC spec( untyped nulls ) when batching is turned on.voidsetStream(java.io.InputStream newStream)Set me to the value represented by this stream.voidsetValue(byte[] theValue)Set the value of this DataValueDescriptor.voidsetValue(java.io.InputStream theStream, int valueLength)Set the value from the stream which is in the on-disk format.voidsetValue(java.sql.Blob theValue)Set the value of this DataValueDescriptor.ConcatableDataValuesubstring(NumberDataValue start, NumberDataValue length, ConcatableDataValue result, int maxLen)The SQL substr() function.private voidthrowStreamingIOException(java.io.IOException ioe)java.lang.StringtoString()(package private) voidtruncate(int sourceWidth, int desiredWidth, boolean warn)Truncate this value to the desired width by removing bytes at the end of the byte sequence.private voidwriteBlob(java.io.ObjectOutput out)Serialize a blob using the 8.1 encoding.voidwriteExternal(java.io.ObjectOutput out)Write the value out from the byte array (not called if null) using the 8.1 encoding.private voidwriteLength(java.io.ObjectOutput out, int len)Write the length if using the 8.1 encoding.-
Methods inherited from class org.apache.derby.iapi.types.DataType
coalesce, compare, compare, compareTo, dataTypeConversion, equals, flip, genericSetObject, getBoolean, getByte, getDate, getDouble, getFloat, getInt, getLong, getObject, getShort, getTime, getTimestamp, getTypeName, hasStream, in, invalidFormat, isNotNull, isNullOp, normalize, outOfRange, readExternalFromArray, recycle, setBigDecimal, setInto, setObject, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, throwLangSetMismatch, throwLangSetMismatch, typePrecedence, typeToBigDecimal
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.derby.iapi.types.DataValueDescriptor
coalesce, compare, compare, getBoolean, getByte, getDate, getDouble, getFloat, getInt, getLong, getNewNull, getObject, getShort, getTime, getTimestamp, getTypeName, hasStream, in, isNotNull, isNullOp, normalize, readExternalFromArray, recycle, setBigDecimal, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValueFromResultSet, typePrecedence, typeToBigDecimal
-
Methods inherited from interface org.apache.derby.iapi.services.io.TypedFormat
getTypeFormatId
-
Methods inherited from interface org.apache.derby.iapi.types.VariableSizeDataValue
setWidth
-
-
-
-
Field Detail
-
PAD
static final byte PAD
- See Also:
- Constant Field Values
-
BASE_MEMORY_USAGE
private static final int BASE_MEMORY_USAGE
-
LEN_OF_BUFFER_TO_WRITE_BLOB
private static final int LEN_OF_BUFFER_TO_WRITE_BLOB
- See Also:
- Constant Field Values
-
_blobValue
java.sql.Blob _blobValue
-
dataValue
byte[] dataValue
-
stream
java.io.InputStream stream
Value as a stream, this stream represents the on-disk format of the value. That is it has length information encoded in the first fe bytes.
-
streamValueLength
int streamValueLength
Length of the value in bytes when this value is set as a stream. Represents the length of the value itself and not the length of the stream which contains this length encoded as the first few bytes. If the value of the stream is unknown then this will be set to -1. If this value is not set as a stream then this value should be ignored.
-
-
Method Detail
-
estimateMemoryUsage
public int estimateMemoryUsage()
Description copied from interface:DataValueDescriptorEstimate the memory usage in bytes of the data value and the overhead of the class.- Specified by:
estimateMemoryUsagein interfaceDataValueDescriptor- Returns:
- the estimated memory usage
-
getMaxMemoryUsage
abstract int getMaxMemoryUsage()
Return max memory usage for a SQL Binary
-
setValue
public final void setValue(byte[] theValue)
Description copied from class:DataTypeSet the value of this DataValueDescriptor. At DataType level just throws an error lower classes will override- Specified by:
setValuein interfaceDataValueDescriptor- Overrides:
setValuein classDataType- Parameters:
theValue- The byte value to set this DataValueDescriptor to
-
setValue
public final void setValue(java.sql.Blob theValue)
Description copied from class:DataTypeSet the value of this DataValueDescriptor. At DataType level just throws an error lower classes will override- Specified by:
setValuein interfaceBitDataValue- Specified by:
setValuein interfaceDataValueDescriptor- Overrides:
setValuein classDataType- Parameters:
theValue- The Blob value to set this DataValueDescriptor to
-
getString
public final java.lang.String getString() throws StandardExceptionUsed by JDBC -- string should not contain SQL92 formatting.- Specified by:
getStringin interfaceDataValueDescriptor- Returns:
- The data value as a String.
- Throws:
StandardException- Thrown on error
-
getStream
public final java.io.InputStream getStream() throws StandardExceptionDescription copied from class:DataTypeGets the value in the data stream descriptor as an InputStream. Throws an exception if the data value is not receivable as a stream.- Specified by:
getStreamin interfaceDataValueDescriptor- Overrides:
getStreamin classDataType- Returns:
- The data value as an InputStream.
- Throws:
StandardException- Thrown on error- See Also:
DataValueDescriptor.hasStream(),StringDataValue.getStreamWithDescriptor()
-
getBytes
public final byte[] getBytes() throws StandardExceptionDescription copied from class:DataTypeGets the value in the data value descriptor as a byte[]. Throws an exception if the data value is not receivable as a Binary or Varbinary.- Specified by:
getBytesin interfaceDataValueDescriptor- Overrides:
getBytesin classDataType- Returns:
- The Binary value as a byte[].
- Throws:
StandardException- Thrown on error
-
getValue
byte[] getValue() throws StandardException- Throws:
StandardException
-
getLength
public final int getLength() throws StandardExceptionlength in bytes- Specified by:
getLengthin interfaceDataValueDescriptor- Returns:
- The length of the data value
- Throws:
StandardException- Thrown on error
-
throwStreamingIOException
private void throwStreamingIOException(java.io.IOException ioe) throws StandardException- Throws:
StandardException
-
isNull
public final boolean isNull()
see if the Bit value is null.- Specified by:
isNullin interfaceStorable- Returns:
- true if the value is null and false otherwise.
- See Also:
Storable.isNull()
-
writeExternal
public final void writeExternal(java.io.ObjectOutput out) throws java.io.IOExceptionWrite the value out from the byte array (not called if null) using the 8.1 encoding.- Specified by:
writeExternalin interfacejava.io.Externalizable- Throws:
java.io.IOException- io exception
-
writeBlob
private void writeBlob(java.io.ObjectOutput out) throws java.io.IOExceptionSerialize a blob using the 8.1 encoding. Not called if null.- Throws:
java.io.IOException- io exception
-
writeLength
private void writeLength(java.io.ObjectOutput out, int len) throws java.io.IOExceptionWrite the length if using the 8.1 encoding.- Throws:
java.io.IOException- io exception
-
readExternal
public final void readExternal(java.io.ObjectInput in) throws java.io.IOExceptiondelegated to bit- Specified by:
readExternalin interfacejava.io.Externalizable- Throws:
java.io.IOException- io exceptionjava.lang.ClassNotFoundException- class not found
-
readBinaryLength
private static int readBinaryLength(java.io.ObjectInput in) throws java.io.IOExceptionRead the encoded length of the value from the on-disk format.- Throws:
java.io.IOException- See Also:
SQLBinary
-
readFromStream
private void readFromStream(java.io.InputStream in) throws java.io.IOExceptionRead the value from an input stream. The length encoded in the input stream has already been read and determined to be unknown.- Throws:
java.io.IOException
-
restoreToNull
public final void restoreToNull()
Description copied from interface:StorableRestore this object to its (SQL)null value.- Specified by:
restoreToNullin interfaceStorable- See Also:
Storable.restoreToNull()
-
compare
public final boolean compare(int op, DataValueDescriptor other, boolean orderedNulls, boolean unknownRV) throws StandardExceptionDescription copied from interface:DataValueDescriptorCompare this Orderable with a given Orderable for the purpose of qualification and sorting. The caller gets to determine how nulls should be treated - they can either be ordered values or unknown values.- Specified by:
comparein interfaceDataValueDescriptor- Overrides:
comparein classDataType- Parameters:
op- Orderable.ORDER_OP_EQUALS means do an = comparison. Orderable.ORDER_OP_LESSTHAN means compare this < other. Orderable.ORDER_OP_LESSOREQUALS means compare this <= other.other- The DataValueDescriptor to compare this one to.orderedNulls- True means to treat nulls as ordered values, that is, treat SQL null as equal to null, and less than all other values. False means to treat nulls as unknown values, that is, the result of any comparison with a null is the UNKNOWN truth value.unknownRV- The return value to use if the result of the comparison is the UNKNOWN truth value. In other words, if orderedNulls is false, and a null is involved in the comparison, return unknownRV. This parameter is not used orderedNulls is true.- Returns:
- true if the comparison is true (duh!)
- Throws:
StandardException- thrown on error
-
compare
public final int compare(DataValueDescriptor other) throws StandardException
Description copied from interface:DataValueDescriptorCompare this Orderable with a given Orderable for the purpose of index positioning. This method treats nulls as ordered values - that is, it treats SQL null as equal to null and greater than all other values.- Specified by:
comparein interfaceDataValueDescriptor- Parameters:
other- The Orderable to compare this one to.- Returns:
- <0 - this Orderable is less than other. 0 - this Orderable equals other. >0 - this Orderable is greater than other. The code should not explicitly look for -1, or 1.
- Throws:
StandardException- thrown on error
-
cloneHolder
public final DataValueDescriptor cloneHolder()
Shallow clone a StreamStorable without objectifying. This is used to avoid unnecessary objectifying of a stream object. Beetle 4896- Specified by:
cloneHolderin interfaceDataValueDescriptor- Overrides:
cloneHolderin classDataType- Returns:
- A shallow clone.
-
cloneValue
public DataValueDescriptor cloneValue(boolean forceMaterialization)
Description copied from interface:DataValueDescriptorClone this DataValueDescriptor. Results in a new object that has the same value as this but can be modified independently.Even though the objects can be modified independently regardless of the value of
forceMaterialization, both the clone and the original may be dependent on the store state ifforceMaterializationis set tofalse. An example is if you need to access the value you just read usingcloneValueafter the current transaction has ended, or after the source result set has been closed.- Specified by:
cloneValuein interfaceDataValueDescriptor- Parameters:
forceMaterialization- any streams representing the data value will be materialized iftrue, the data value will be kept as a stream if possible iffalse- Returns:
- A clone of the
DataValueDescriptorwith the same initial value as this. - See Also:
DataValueDescriptor.cloneValue(boolean)
-
returnStream
public final java.io.InputStream returnStream()
Description copied from interface:StreamStorableReturn the on-disk stream state of the object.- Specified by:
returnStreamin interfaceStreamStorable
-
setStream
public final void setStream(java.io.InputStream newStream)
Set me to the value represented by this stream. The format of the stream is the on-disk format described in this class's javadoc. That is the length is encoded in the first few bytes of the stream.- Specified by:
setStreamin interfaceStreamStorable
-
loadStream
public final void loadStream() throws StandardExceptionDescription copied from interface:StreamStorableSet the value by reading the stream and converting it to an object form.- Specified by:
loadStreamin interfaceStreamStorable- Throws:
StandardException- on error
-
objectNull
boolean objectNull(java.lang.Object o)
-
setValue
public final void setValue(java.io.InputStream theStream, int valueLength)Set the value from the stream which is in the on-disk format.- Specified by:
setValuein interfaceDataValueDescriptor- Overrides:
setValuein classDataType- Parameters:
theStream- On disk format of the streamvalueLength- length of the logical value in bytes, orDataValueDescriptor.UNKNOWN_LOGICAL_LENGTH
-
setFrom
protected final void setFrom(DataValueDescriptor theValue) throws StandardException
Description copied from class:DataTypeSet the value of this DataValueDescriptor based on the value of the specified DataValueDescriptor.- Overrides:
setFromin classDataType- Parameters:
theValue- The DataValueDescriptor that holds the value to which we want to set this DataValueDescriptor's value.- Throws:
StandardException
-
equals
public final BooleanDataValue equals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException
The = operator as called from the language module, as opposed to the storage module.- Specified by:
equalsin interfaceDataValueDescriptor- Overrides:
equalsin classDataType- Parameters:
left- The value on the left side of the =right- The value on the right side of the = is not.- Returns:
- A SQL boolean value telling whether the two parameters are equal
- Throws:
StandardException- Thrown on error
-
notEquals
public final BooleanDataValue notEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException
The <> operator as called from the language module, as opposed to the storage module.- Specified by:
notEqualsin interfaceDataValueDescriptor- Overrides:
notEqualsin classDataType- Parameters:
left- The value on the left side of the operatorright- The value on the right side of the operator- Returns:
- A SQL boolean value telling whether the two parameters are not equal
- Throws:
StandardException- Thrown on error
-
lessThan
public final BooleanDataValue lessThan(DataValueDescriptor left, DataValueDescriptor right) throws StandardException
The < operator as called from the language module, as opposed to the storage module.- Specified by:
lessThanin interfaceDataValueDescriptor- Overrides:
lessThanin classDataType- Parameters:
left- The value on the left side of the operatorright- The value on the right side of the operator- Returns:
- A SQL boolean value telling whether the first operand is less than the second operand
- Throws:
StandardException- Thrown on error
-
greaterThan
public final BooleanDataValue greaterThan(DataValueDescriptor left, DataValueDescriptor right) throws StandardException
The > operator as called from the language module, as opposed to the storage module.- Specified by:
greaterThanin interfaceDataValueDescriptor- Overrides:
greaterThanin classDataType- Parameters:
left- The value on the left side of the operatorright- The value on the right side of the operator- Returns:
- A SQL boolean value telling whether the first operand is greater than the second operand
- Throws:
StandardException- Thrown on error
-
lessOrEquals
public final BooleanDataValue lessOrEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException
The <= operator as called from the language module, as opposed to the storage module.- Specified by:
lessOrEqualsin interfaceDataValueDescriptor- Overrides:
lessOrEqualsin classDataType- Parameters:
left- The value on the left side of the operatorright- The value on the right side of the operator- Returns:
- A SQL boolean value telling whether the first operand is less than or equal to the second operand
- Throws:
StandardException- Thrown on error
-
greaterOrEquals
public final BooleanDataValue greaterOrEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException
The >= operator as called from the language module, as opposed to the storage module.- Specified by:
greaterOrEqualsin interfaceDataValueDescriptor- Overrides:
greaterOrEqualsin classDataType- Parameters:
left- The value on the left side of the >=right- The value on the right side of the >=- Returns:
- A SQL boolean value telling whether the first operand is greater than or equal to the second operand
- Throws:
StandardException- Thrown on error
-
charLength
public final NumberDataValue charLength(NumberDataValue result) throws StandardException
This method implements the char_length function for bit.- Specified by:
charLengthin interfaceConcatableDataValue- Parameters:
result- The result of a previous call to this method, null if not called yet- Returns:
- A SQLInteger containing the length of the char value
- Throws:
StandardException- Thrown on error- See Also:
ConcatableDataValue.charLength(org.apache.derby.iapi.types.NumberDataValue)
-
concatenate
public final BitDataValue concatenate(BitDataValue left, BitDataValue right, BitDataValue result) throws StandardException
Description copied from interface:BitDataValueThe SQL concatenation '||' operator.- Specified by:
concatenatein interfaceBitDataValue- Parameters:
left- String on the left hand side of '||'right- String on the right hand side of '||'result- The result of a previous call to this method, null if not called yet.- Returns:
- A ConcatableDataValue containing the result of the '||'
- Throws:
StandardException- Thrown on error- See Also:
BitDataValue.concatenate(org.apache.derby.iapi.types.BitDataValue, org.apache.derby.iapi.types.BitDataValue, org.apache.derby.iapi.types.BitDataValue)
-
substring
public final ConcatableDataValue substring(NumberDataValue start, NumberDataValue length, ConcatableDataValue result, int maxLen) throws StandardException
The SQL substr() function.- Specified by:
substringin interfaceConcatableDataValue- Parameters:
start- Start of substrlength- Length of substrresult- The result of a previous call to this method, null if not called yet.maxLen- Maximum length of the result- Returns:
- A ConcatableDataValue containing the result of the substr()
- Throws:
StandardException- Thrown on error
-
checkHostVariable
public final void checkHostVariable(int declaredLength) throws StandardExceptionHost variables are rejected if their length is bigger than the declared length, regardless of if the trailing bytes are the pad character.- Specified by:
checkHostVariablein interfaceDataValueDescriptor- Overrides:
checkHostVariablein classDataType- Throws:
StandardException- Variable is too big.
-
toString
public final java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
hashCode
public final int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
compare
private static int compare(byte[] left, byte[] right)
-
setInto
public void setInto(java.sql.PreparedStatement ps, int position) throws java.sql.SQLException, StandardExceptionAdding this method to ensure that super class' setInto method doesn't get called that leads to the violation of JDBC spec( untyped nulls ) when batching is turned on.- Specified by:
setIntoin interfaceDataValueDescriptor- Overrides:
setIntoin classDataType- Throws:
java.sql.SQLException- thrown by the PreparedStatement objectStandardException- thrown by me accessing my value.
-
getTraceString
public final java.lang.String getTraceString() throws StandardExceptionGets a trace representation for debugging.- Specified by:
getTraceStringin interfaceDataValueDescriptor- Overrides:
getTraceStringin classDataType- Returns:
- a trace representation of this SQL DataType.
- Throws:
StandardException- if getting the data value fails.- See Also:
DataValueDescriptor.getString()
-
getBlobLength
private int getBlobLength() throws StandardException- Throws:
StandardException
-
truncate
void truncate(int sourceWidth, int desiredWidth, boolean warn) throws StandardExceptionTruncate this value to the desired width by removing bytes at the end of the byte sequence.- Parameters:
sourceWidth- the original width in bytes (only used for diagnostics, ignored ifwarnisfalse)desiredWidth- the desired width in byteswarn- whether or not to generate a truncation warning- Throws:
StandardException
-
-