Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.derby.iapi.types
Class SQLChar  view SQLChar download SQLChar.java

java.lang.Object
  extended byorg.apache.derby.iapi.types.DataType
      extended byorg.apache.derby.iapi.types.SQLChar
All Implemented Interfaces:
CloneableObject, ConcatableDataValue, DataValueDescriptor, java.io.Externalizable, org.apache.derby.iapi.services.io.Formatable, Orderable, java.io.Serializable, org.apache.derby.iapi.services.io.Storable, org.apache.derby.iapi.services.io.StreamStorable, StringDataValue, org.apache.derby.iapi.services.io.TypedFormat, VariableSizeDataValue
Direct Known Subclasses:
SQLNationalChar, SQLVarchar

public class SQLChar
extends DataType
implements StringDataValue, org.apache.derby.iapi.services.io.StreamStorable

SQLChar satisfies the DataValueDescriptor interfaces (i.e., OrderableDataType). It implements an String holder, e.g. for storing a column value; it can be specified when constructed to not allow nulls. Nullability cannot be changed after construction.

Because OrderableDataType is a subclass of DataType, SQLChar can play a role in either a DataType/ValueRow or a OrderableDataType/KeyRow, interchangeably.


Field Summary
(package private)  char[][] arg_passer
           
private static int BASE_MEMORY_USAGE
           
private static char[] BLANKS
          Static array that can be used for blank padding.
private  java.text.CollationKey cKey
           
private static int GROWBY_FOR_CHAR
          when we know that the array needs to grow by at least one byte, it is not performant to grow by just one byte instead this amount is used to provide a reasonable growby size.
private  int[] intArray
           
private  int intLength
           
private  org.apache.derby.iapi.services.i18n.LocaleFinder localeFinder
           
private  char[] rawData
           
private  int rawLength
           
protected static int RETURN_SPACE_THRESHOLD
          threshold, that decides when we return space back to the VM see getString() where it is used
protected  java.io.InputStream stream
           
private  java.lang.String value
           
 
Fields inherited from interface org.apache.derby.iapi.types.StringDataValue
BOTH, LEADING, TRAILING
 
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
 
Constructor Summary
SQLChar()
          no-arg constructor, required by Formattable.
SQLChar(java.lang.String val)
           
 
Method Summary
static void appendBlanks(char[] ca, int offset, int howMany)
           
 NumberDataValue charLength(NumberDataValue result)
          This method implements the char_length function for char.
 java.lang.Object cloneObject()
          From CloneableObject Shallow clone a StreamStorable without objectifying.
 int compare(DataValueDescriptor other)
          Compare this Orderable with a given Orderable for the purpose of index positioning.
 boolean compare(int op, DataValueDescriptor other, boolean orderedNulls, boolean unknownRV)
          Compare this Orderable with a given Orderable for the purpose of qualification and sorting.
 StringDataValue concatenate(StringDataValue leftOperand, StringDataValue rightOperand, StringDataValue result)
          The SQL concatenation '||' operator.
protected  void copyState(SQLChar other)
           
 BooleanDataValue equals(DataValueDescriptor left, DataValueDescriptor right)
          The = operator as called from the language module, as opposed to the storage module.
 int estimateMemoryUsage()
          Estimate the memory usage in bytes of the data value and the overhead of the class.
private  void formatJDBCDate(java.util.Calendar cal, java.lang.StringBuffer sb)
           
private  void formatJDBCTime(java.util.Calendar cal, java.lang.StringBuffer sb)
           
 boolean getBoolean()
          Gets the value in the data value descriptor as a boolean.
 byte getByte()
          Gets the value in the data value descriptor as a byte.
 char[] getCharArray()
          Get a char array.
 DataValueDescriptor getClone()
          Clone this DataValueDescriptor.
protected  java.text.CollationKey getCollationKey()
           
 java.sql.Date getDate(java.util.Calendar cal)
          Gets the value in the data value descriptor as a java.sql.Date.
static java.sql.Date getDate(java.util.Calendar cal, java.lang.String str, org.apache.derby.iapi.services.i18n.LocaleFinder localeFinder)
           
protected  java.text.DateFormat getDateFormat()
           
protected  java.text.DateFormat getDateFormat(java.util.Calendar cal)
           
 double getDouble()
          Gets the value in the data value descriptor as a double.
 float getFloat()
          Gets the value in the data value descriptor as a float.
 int getInt()
          Gets the value in the data value descriptor as an int.
private  int[] getIntArray()
           
private  int getIntLength()
           
 int getLength()
          Gets the length of the data value.
private  java.util.Locale getLocale()
           
protected  org.apache.derby.iapi.services.i18n.LocaleFinder getLocaleFinder()
           
 long getLong()
          Gets the value in the data value descriptor as a long.
 DataValueDescriptor getNewNull()
          Get a new null value of the same type as this data value.
protected  StringDataValue getNewVarchar()
          Get a SQLVarchar for a built-in string function.
 java.lang.Object getObject()
          Gets the value in the data value descriptor as a Java Object.
 short getShort()
          Gets the value in the data value descriptor as a short.
 java.io.InputStream getStream()
          Gets the value in the data value descriptor as a Java InputStream.
 java.lang.String getString()
          If possible, use getCharArray() if you don't really need a string.
 java.sql.Time getTime(java.util.Calendar cal)
          Gets the value in the data value descriptor as a java.sql.Time.
static java.sql.Time getTime(java.util.Calendar cal, java.lang.String str, org.apache.derby.iapi.services.i18n.LocaleFinder localeFinder)
           
protected  java.text.DateFormat getTimeFormat()
           
protected  java.text.DateFormat getTimeFormat(java.util.Calendar cal)
           
 java.sql.Timestamp getTimestamp(java.util.Calendar cal)
          Gets the value in the data value descriptor as a java.sql.Timestamp.
static java.sql.Timestamp getTimestamp(java.util.Calendar cal, java.lang.String str, org.apache.derby.iapi.services.i18n.LocaleFinder localeFinder)
           
protected  java.text.DateFormat getTimestampFormat()
           
protected  java.text.DateFormat getTimestampFormat(java.util.Calendar cal)
           
 int getTypeFormatId()
          Return my format identifier.
 java.lang.String getTypeName()
          Get the SQL name of the datatype
 BooleanDataValue greaterOrEquals(DataValueDescriptor left, DataValueDescriptor right)
          The >= operator as called from the language module, as opposed to the storage module.
 BooleanDataValue greaterThan(DataValueDescriptor left, DataValueDescriptor right)
          The > operator as called from the language module, as opposed to the storage module.
protected  int growBy()
          returns the reasonable minimum amount by which the array can grow .
 int hashCode()
          Get a value that represents this Object, as uniquely as possible within the confines of an int.
protected  void hasNonBlankChars(java.lang.String source, int start, int end)
           
protected  boolean isNationalString()
          Return whether or not this is a national character datatype.
 boolean isNull()
          see if the String value is null.
 BooleanDataValue lessOrEquals(DataValueDescriptor left, DataValueDescriptor right)
          The <= operator as called from the language module, as opposed to the storage module.
 BooleanDataValue lessThan(DataValueDescriptor left, DataValueDescriptor right)
          The < operator as called from the language module, as opposed to the storage module.
 BooleanDataValue like(DataValueDescriptor pattern)
          This method implements the like function for char (with no escape value).
 BooleanDataValue like(DataValueDescriptor pattern, DataValueDescriptor escape)
          This method implements the like function for char with an escape value.
 void loadStream()
          sets the stream state for the object.
 NumberDataValue locate(StringDataValue searchFrom, NumberDataValue start, NumberDataValue result)
          This method implements the locate function for char.
 StringDataValue lower(StringDataValue result)
          Convert the string to lower case.
protected  java.sql.Date nationalGetDate(java.util.Calendar cal)
          This implements getDate() for the national types.
protected  java.sql.Time nationalGetTime(java.util.Calendar cal)
          This implements getTime() for the national types.
protected  java.sql.Timestamp nationalGetTimestamp(java.util.Calendar cal)
          This implements getTimestamp() for the national types.
protected  int nationalHashCode()
          Implementation of hashCode() for the national character types, put here to make it accessible to all the national types.
 void normalize(DataTypeDescriptor desiredType, DataValueDescriptor source)
          Normalization method - this method may be called when putting a value into a SQLChar, for example, when inserting into a SQLChar column.
protected  void normalize(DataTypeDescriptor desiredType, java.lang.String sourceValue)
           
 BooleanDataValue notEquals(DataValueDescriptor left, DataValueDescriptor right)
          The <> operator as called from the language module, as opposed to the storage module.
 void readExternal(java.io.ObjectInput in)
          This method restores an object's state by reading in the instance data for the object from the passed in stream.
 void readExternalFromArray(org.apache.derby.iapi.services.io.ArrayInputStream in)
          Reads in a string from the specified data input stream.
 void restoreToNull()
          Restore this object to its (SQL)null value.
 java.io.InputStream returnStream()
          Return the stream state of the object.
private  void setAsToNationalString(java.lang.Object theValue)
           
 void setBigDecimal(java.lang.Number bigDecimal)
          Only to be called when an application through JDBC is setting a SQLChar to a java.math.BigDecimal.
private  java.text.DateFormat setDateFormatCalendar(java.text.DateFormat df, java.util.Calendar cal)
           
protected  void setFrom(DataValueDescriptor theValue)
           
 void setInto(java.sql.PreparedStatement ps, int position)
          Set the value into a PreparedStatement.
protected  void setLocaleFinder(org.apache.derby.iapi.services.i18n.LocaleFinder localeFinder)
           
 void setStream(java.io.InputStream newStream)
          sets the stream state for the object.
 void setValue(boolean theValue)
          Set the value.
 void setValue(byte theValue)
          Set the value of this DataValueDescriptor to the given byte value
 void setValue(byte[] theValue)
          Set the value of this DataValueDescriptor.
 void setValue(java.sql.Date theValue, java.util.Calendar cal)
          Set the value of this DataValueDescriptor.
 void setValue(double theValue)
          Set the value of this DataValueDescriptor to the given double value
 void setValue(float theValue)
          Set the value of this DataValueDescriptor to the given double value
 void setValue(java.io.InputStream theStream, int streamLength)
          Set the value to be the contents of the stream.
 void setValue(int theValue)
          Set the value of this DataValueDescriptor to the given int value
 void setValue(long theValue)
          Set the value of this DataValueDescriptor to the given long value
 void setValue(java.lang.Object theValue)
          Set the value of this DataValueDescriptor to the given value
 void setValue(short theValue)
          Set the value of this DataValueDescriptor to the given short value
 void setValue(java.lang.String theValue)
          Set the value of this DataValueDescriptor.
 void setValue(java.sql.Time theValue, java.util.Calendar cal)
          Set the value of this DataValueDescriptor.
 void setValue(java.sql.Timestamp theValue, java.util.Calendar cal)
          Set the value of this DataValueDescriptor.
 void setValueFromResultSet(java.sql.ResultSet resultSet, int colNumber, boolean isNullable)
          Set the value based on the value for the specified DataValueDescriptor from the specified ResultSet.
 DataValueDescriptor setWidth(int desiredWidth, int desiredScale, boolean errorOnTrunc)
          Set the width of the to the desired value.
protected  int stringCollatorCompare(SQLChar str2)
          Compare a localized string with this one.
protected static int stringCompare(char[] op1, int leftlen, char[] op2, int rightlen)
          Compare two Strings using standard SQL semantics.
protected  int stringCompare(SQLChar char1, SQLChar char2)
          Compare two SQLChars.
protected static int stringCompare(java.lang.String op1, java.lang.String op2)
          Compare two Strings using standard SQL semantics.
 ConcatableDataValue substring(NumberDataValue start, NumberDataValue length, ConcatableDataValue result, int maxLen)
          The SQL substr() function.
 java.lang.String toString()
          Convert this Object to a human-readable String.
 StringDataValue trim(int trimType, StringDataValue result)
          The SQL trim(), ltrim() and rtrim() functions.
 int typePrecedence()
          Each built-in type in JSQL has a precedence.
 int typeToBigDecimal()
          CHAR/VARCHAR/LONG VARCHAR implementation.
 StringDataValue upper(StringDataValue result)
          Convert the string to upper case.
 void writeExternal(java.io.ObjectOutput out)
          The maximum stored size is based upon the UTF format used to stored the String.
 XMLDataValue XMLParse(XMLDataValue result, boolean preserveWS)
           
 
Methods inherited from class org.apache.derby.iapi.types.DataType
checkHostVariable, coalesce, dataTypeConversion, equals, flip, genericSetObject, getBytes, getNationalString, in, invalidFormat, isNotNull, isNullOp, outOfRange, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, throwLangSetMismatch, throwLangSetMismatch
 
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
checkHostVariable, coalesce, getBytes, in, isNotNull, isNullOp, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue
 

Field Detail

RETURN_SPACE_THRESHOLD

protected static final int RETURN_SPACE_THRESHOLD
threshold, that decides when we return space back to the VM see getString() where it is used

See Also:
Constant Field Values

GROWBY_FOR_CHAR

private static final int GROWBY_FOR_CHAR
when we know that the array needs to grow by at least one byte, it is not performant to grow by just one byte instead this amount is used to provide a reasonable growby size.

See Also:
Constant Field Values

BLANKS

private static final char[] BLANKS
Static array that can be used for blank padding.


arg_passer

char[][] arg_passer

value

private java.lang.String value

rawData

private char[] rawData

rawLength

private int rawLength

cKey

private java.text.CollationKey cKey

stream

protected java.io.InputStream stream

intArray

private int[] intArray

intLength

private int intLength

localeFinder

private org.apache.derby.iapi.services.i18n.LocaleFinder localeFinder

BASE_MEMORY_USAGE

private static final int BASE_MEMORY_USAGE
Constructor Detail

SQLChar

public SQLChar()
no-arg constructor, required by Formattable.


SQLChar

public SQLChar(java.lang.String val)
Method Detail

appendBlanks

public static void appendBlanks(char[] ca,
                                int offset,
                                int howMany)

getBoolean

public boolean getBoolean()
                   throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the value in the data value descriptor as a boolean. Throws an exception if the data value is not a boolean. For DataValueDescriptor, this is the preferred interface for BIT, but for this no-casting interface, it isn't, because BIT is stored internally as a Bit, not as a Boolean.

Specified by:
getBoolean in interface DataValueDescriptor
Overrides:
getBoolean in class DataType

getByte

public byte getByte()
             throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the value in the data value descriptor as a byte. Throws an exception if the data value is not a byte.

Specified by:
getByte in interface DataValueDescriptor
Overrides:
getByte in class DataType

getShort

public short getShort()
               throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the value in the data value descriptor as a short. Throws an exception if the data value is not a short.

Specified by:
getShort in interface DataValueDescriptor
Overrides:
getShort in class DataType

getInt

public int getInt()
           throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the value in the data value descriptor as an int. Throws an exception if the data value is not an int.

Specified by:
getInt in interface DataValueDescriptor
Overrides:
getInt in class DataType

getLong

public long getLong()
             throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the value in the data value descriptor as a long. Throws an exception if the data value is not a long.

Specified by:
getLong in interface DataValueDescriptor
Overrides:
getLong in class DataType

getFloat

public float getFloat()
               throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the value in the data value descriptor as a float. Throws an exception if the data value is not a float.

Specified by:
getFloat in interface DataValueDescriptor
Overrides:
getFloat in class DataType

getDouble

public double getDouble()
                 throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the value in the data value descriptor as a double. Throws an exception if the data value is not a double.

Specified by:
getDouble in interface DataValueDescriptor
Overrides:
getDouble in class DataType

typeToBigDecimal

public int typeToBigDecimal()
                     throws org.apache.derby.iapi.error.StandardException
CHAR/VARCHAR/LONG VARCHAR implementation. Convert to a BigDecimal using getString.

Specified by:
typeToBigDecimal in interface DataValueDescriptor
Overrides:
typeToBigDecimal in class DataType

getDate

public java.sql.Date getDate(java.util.Calendar cal)
                      throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the value in the data value descriptor as a java.sql.Date. Throws an exception if the data value is not a Date.

Specified by:
getDate in interface DataValueDescriptor
Overrides:
getDate in class DataType

getDate

public static java.sql.Date getDate(java.util.Calendar cal,
                                    java.lang.String str,
                                    org.apache.derby.iapi.services.i18n.LocaleFinder localeFinder)
                             throws org.apache.derby.iapi.error.StandardException

getTime

public java.sql.Time getTime(java.util.Calendar cal)
                      throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the value in the data value descriptor as a java.sql.Time. Throws an exception if the data value is not a Time.

Specified by:
getTime in interface DataValueDescriptor
Overrides:
getTime in class DataType

getTime

public static java.sql.Time getTime(java.util.Calendar cal,
                                    java.lang.String str,
                                    org.apache.derby.iapi.services.i18n.LocaleFinder localeFinder)
                             throws org.apache.derby.iapi.error.StandardException

getTimestamp

public java.sql.Timestamp getTimestamp(java.util.Calendar cal)
                                throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the value in the data value descriptor as a java.sql.Timestamp. Throws an exception if the data value is not a Timestamp.

Specified by:
getTimestamp in interface DataValueDescriptor
Overrides:
getTimestamp in class DataType

getTimestamp

public static java.sql.Timestamp getTimestamp(java.util.Calendar cal,
                                              java.lang.String str,
                                              org.apache.derby.iapi.services.i18n.LocaleFinder localeFinder)
                                       throws org.apache.derby.iapi.error.StandardException

getObject

public java.lang.Object getObject()
                           throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the value in the data value descriptor as a Java Object. The type of the Object will be the Java object type corresponding to the data value's SQL type. JDBC defines a mapping between Java object types and SQL types - we will allow that to be extended through user type definitions. Throws an exception if the data value is not an object (yeah, right).

Specified by:
getObject in interface DataValueDescriptor
Overrides:
getObject in class DataType

getStream

public java.io.InputStream getStream()
                              throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the value in the data value descriptor as a Java InputStream. Only data types that implements StreamStorable will have stream states.

Specified by:
getStream in interface DataValueDescriptor
Overrides:
getStream in class DataType

getLength

public int getLength()
              throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Gets the length of the data value. The meaning of this is implementation-dependent. For string types, it is the number of characters in the string. For numeric types, it is the number of bytes used to store the number. This is the actual length of this value, not the length of the type it was defined as. For example, a VARCHAR value may be shorter than the declared VARCHAR (maximum) length.

Specified by:
getLength in interface DataValueDescriptor

getTypeName

public java.lang.String getTypeName()
Description copied from interface: DataValueDescriptor
Get the SQL name of the datatype

Specified by:
getTypeName in interface DataValueDescriptor

getString

public java.lang.String getString()
                           throws org.apache.derby.iapi.error.StandardException
If possible, use getCharArray() if you don't really need a string. getString() will cause an extra char array to be allocated when it calls the the String() constructor (the first time through), so may be cheaper to use getCharArray().

Specified by:
getString in interface DataValueDescriptor

getCharArray

public char[] getCharArray()
                    throws org.apache.derby.iapi.error.StandardException
Get a char array. Typically, this is a simple getter that is cheaper than getString() because we always need to create a char array when doing I/O. Use this instead of getString() where reasonable.

WARNING: may return a character array that has spare characters at the end. MUST be used in conjunction with getLength() to be safe.

Specified by:
getCharArray in interface StringDataValue

returnStream

public java.io.InputStream returnStream()
Description copied from interface: org.apache.derby.iapi.services.io.StreamStorable
Return the stream state of the object.

Specified by:
returnStream in interface org.apache.derby.iapi.services.io.StreamStorable

setStream

public void setStream(java.io.InputStream newStream)
Description copied from interface: org.apache.derby.iapi.services.io.StreamStorable
sets the stream state for the object.

Specified by:
setStream in interface org.apache.derby.iapi.services.io.StreamStorable

loadStream

public void loadStream()
                throws org.apache.derby.iapi.error.StandardException
Description copied from interface: org.apache.derby.iapi.services.io.StreamStorable
sets the stream state for the object.

Specified by:
loadStream in interface org.apache.derby.iapi.services.io.StreamStorable

getTypeFormatId

public int getTypeFormatId()
Return my format identifier.

Specified by:
getTypeFormatId in interface org.apache.derby.iapi.services.io.TypedFormat

isNull

public boolean isNull()
see if the String value is null.

Specified by:
isNull in interface org.apache.derby.iapi.services.io.Storable

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
The maximum stored size is based upon the UTF format used to stored the String. The format consists of a two byte length field and a maximum number of three bytes for each character.
This puts an upper limit on the length of a stored String. The maximum stored length is 65535, these leads to the worse case of a maximum string length of 21844 ((65535 - 2) / 3).
Strings with stored length longer than 64K is handled with the following format: (1) 2 byte length: will be assigned 0. (2) UTF formated string data. (3) terminate the string with the following 3 bytes: first byte is: +---+---+---+---+---+---+---+---+ | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | +---+---+---+---+---+---+---+---+ second byte is: +---+---+---+---+---+---+---+---+ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---+---+---+---+---+---+---+---+ third byte is: +---+---+---+---+---+---+---+---+ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---+---+---+---+---+---+---+---+ The UTF format: Writes a string to the underlying output stream using UTF-8 encoding in a machine-independent manner.

First, two bytes are written to the output stream as if by the writeShort method giving the number of bytes to follow. This value is the number of bytes actually written out, not the length of the string. Following the length, each character of the string is output, in sequence, using the UTF-8 encoding for the character.

Specified by:
writeExternal in interface java.io.Externalizable
Since:
JDK1.0

readExternalFromArray

public void readExternalFromArray(org.apache.derby.iapi.services.io.ArrayInputStream in)
                           throws java.io.IOException
Reads in a string from the specified data input stream. The string has been encoded using a modified UTF-8 format.

The first two bytes are read as if by readUnsignedShort. This value gives the number of following bytes that are in the encoded string, not the length of the resulting string. The following bytes are then interpreted as bytes encoding characters in the UTF-8 format and are converted into characters.

This method blocks until all the bytes are read, the end of the stream is detected, or an exception is thrown.

Specified by:
readExternalFromArray in interface DataValueDescriptor

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException
Description copied from interface: java.io.Externalizable
This method restores an object's state by reading in the instance data for the object from the passed in stream. Note that this stream is not a subclass of InputStream, but rather is a class that implements the ObjectInput interface. That interface provides a mechanism for reading in Java data types from a stream.

Note that this method must be compatible with writeExternal. It must read back the exact same types that were written by that method in the exact order they were written.

If this method needs to read back an object instance, then the class for that object must be found and loaded. If that operation fails, then this method throws a ClassNotFoundException

Specified by:
readExternal in interface java.io.Externalizable

growBy

protected int growBy()
returns the reasonable minimum amount by which the array can grow . See readExternal. when we know that the array needs to grow by at least one byte, it is not performant to grow by just one byte instead this amount is used to provide a resonable growby size.


restoreToNull

public void restoreToNull()
Description copied from interface: org.apache.derby.iapi.services.io.Storable
Restore this object to its (SQL)null value.

Specified by:
restoreToNull in interface org.apache.derby.iapi.services.io.Storable

compare

public boolean compare(int op,
                       DataValueDescriptor other,
                       boolean orderedNulls,
                       boolean unknownRV)
                throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Compare 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:
compare in interface DataValueDescriptor
Overrides:
compare in class DataType

compare

public int compare(DataValueDescriptor other)
            throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Compare 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 less than all other values.

Specified by:
compare in interface DataValueDescriptor

cloneObject

public java.lang.Object cloneObject()
From CloneableObject Shallow clone a StreamStorable without objectifying. This is used to avoid unnecessary objectifying of a stream object. The only difference of this method from getClone is this method does not objectify a stream. beetle 4896

Specified by:
cloneObject in interface CloneableObject
Overrides:
cloneObject in class DataType

getClone

public DataValueDescriptor getClone()
Description copied from interface: DataValueDescriptor
Clone this DataValueDescriptor. Results in a new object that has the same value as this but can be modified independently.

Specified by:
getClone in interface DataValueDescriptor

getNewNull

public DataValueDescriptor getNewNull()
Description copied from interface: DataValueDescriptor
Get a new null value of the same type as this data value.

Specified by:
getNewNull in interface DataValueDescriptor

setValueFromResultSet

public final void setValueFromResultSet(java.sql.ResultSet resultSet,
                                        int colNumber,
                                        boolean isNullable)
                                 throws java.sql.SQLException
Description copied from interface: DataValueDescriptor
Set the value based on the value for the specified DataValueDescriptor from the specified ResultSet.

Specified by:
setValueFromResultSet in interface DataValueDescriptor

setInto

public final void setInto(java.sql.PreparedStatement ps,
                          int position)
                   throws java.sql.SQLException,
                          org.apache.derby.iapi.error.StandardException
Set the value into a PreparedStatement.

Specified by:
setInto in interface DataValueDescriptor
Overrides:
setInto in class DataType

setValue

public void setValue(java.lang.String theValue)
Description copied from interface: DataValueDescriptor
Set the value of this DataValueDescriptor.

Specified by:
setValue in interface DataValueDescriptor
Overrides:
setValue in class DataType

setValue

public void setValue(boolean theValue)
              throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Set the value.

Specified by:
setValue in interface DataValueDescriptor
Overrides:
setValue in class DataType

setValue

public void setValue(int theValue)
              throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Set the value of this DataValueDescriptor to the given int value

Specified by:
setValue in interface DataValueDescriptor
Overrides:
setValue in class DataType

setValue

public void setValue(double theValue)
              throws org.apache.derby.iapi.error.StandardException
Description copied from interface: DataValueDescriptor
Set the value of this DataValueDescriptor to the given double value

Specified by:
setValue in interface