|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.derby.iapi.types.DataType
org.apache.derby.iapi.types.SQLDate
This contains an instance of a SQL Date.
The date is stored as int (year << 16 + month << 8 + day) Null is represented by an encodedDate value of 0. Some of the static methods in this class are also used by SQLTime and SQLTimestamp so check those classes if you change the date encoding PERFORMANCE OPTIMIZATION: The java.sql.Date object is only instantiated when needed do to the overhead of Date.valueOf(), etc. methods.
Field Summary | |
private static int |
BASE_MEMORY_USAGE
|
private int |
encodedDate
|
private static char[] |
END_OF_STRING
|
private static char |
IBM_EUR_SEPARATOR
|
private static char[] |
IBM_EUR_SEPARATOR_ONLY
|
private static char |
IBM_USA_SEPARATOR
|
private static char[] |
IBM_USA_SEPARATOR_ONLY
|
(package private) static char |
ISO_SEPARATOR
|
private static char[] |
ISO_SEPARATOR_ONLY
|
private java.lang.String |
valueString
|
Fields inherited from interface org.apache.derby.iapi.types.DateTimeDataValue |
DAY_FIELD, HOUR_FIELD, MINUTE_FIELD, MONTH_FIELD, SECOND_FIELD, YEAR_FIELD |
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 |
Constructor Summary | |
|
SQLDate()
no-arg constructor required by Formattable |
|
SQLDate(java.sql.Date value)
|
private |
SQLDate(int encodedDate)
|
|
SQLDate(java.lang.String dateStr,
boolean isJdbcEscape,
LocaleFinder localeFinder)
Construct a date from a string. |
|
SQLDate(java.lang.String dateStr,
boolean isJdbcEscape,
LocaleFinder localeFinder,
java.util.Calendar cal)
Construct a date from a string. |
Method Summary | |
int |
compare(DataValueDescriptor other)
Orderable interface |
boolean |
compare(int op,
DataValueDescriptor other,
boolean orderedNulls,
boolean unknownRV)
Compare this Orderable with a given Orderable for the purpose of qualification and sorting. |
(package private) static int |
computeEncodedDate(java.util.Calendar cal)
computeEncodedDate extracts the year, month and date from a Calendar value and encodes them as year << 16 + month << 8 + date Use this function will help to remember to add 1 to month which is 0 based in the Calendar class |
private static int |
computeEncodedDate(java.util.Date value)
Compute the encoded date given a date |
(package private) static int |
computeEncodedDate(java.util.Date value,
java.util.Calendar currentCal)
|
(package private) static int |
computeEncodedDate(int y,
int m,
int d)
|
(package private) static void |
dateToString(int year,
int month,
int day,
java.lang.StringBuffer sb)
Convert a date to the JDBC representation and append it to a string buffer. |
(package private) static java.lang.String |
encodedDateToString(int encodedDate)
Get the String version from the encodedDate. |
int |
estimateMemoryUsage()
Estimate the memory usage in bytes of the data value and the overhead of the class. |
DataValueDescriptor |
getClone()
Shallow copy. |
java.sql.Date |
getDate(java.util.Calendar cal)
Get the value field. |
NumberDataValue |
getDate(NumberDataValue result)
Get the day of the month. |
(package private) static int |
getDay(int encodedDate)
Get the day from the encodedDate. |
(package private) int |
getEncodedDate()
|
NumberDataValue |
getHours(NumberDataValue result)
Get the hour of the day out of a time or timestamp. |
int |
getLength()
Gets the length of the data value. |
NumberDataValue |
getMinutes(NumberDataValue result)
Get the minute of the hour out of a time or timestamp. |
(package private) static int |
getMonth(int encodedDate)
Get the month from the encodedDate. |
NumberDataValue |
getMonth(NumberDataValue result)
Get the month number out of a date. |
protected java.lang.String |
getNationalString(LocaleFinder localeFinder)
International version of getString(). |
DataValueDescriptor |
getNewNull()
Get a new null value of the same type as this data value. |
java.lang.Object |
getObject()
getObject returns the date value |
NumberDataValue |
getSeconds(NumberDataValue result)
Get the second of the minute out of a time or timestamp. |
java.lang.String |
getString()
Gets the value in the data value descriptor as a String. |
private long |
getTimeInMillis(java.util.Calendar cal)
|
java.sql.Timestamp |
getTimestamp(java.util.Calendar cal)
getTimestamp returns a timestamp with the date value time is set to 00:00:00.0 |
int |
getTypeFormatId()
Return my format identifier. |
java.lang.String |
getTypeName()
Get the SQL name of the datatype |
(package private) static int |
getYear(int encodedDate)
Get the year from the encodedDate. |
NumberDataValue |
getYear(NumberDataValue result)
Get the year number out of a date. |
int |
hashCode()
|
boolean |
isNull()
Check if the value is null. |
private java.sql.Timestamp |
newTimestamp(java.util.Calendar cal)
|
private void |
parseDate(java.util.Date value)
|
private void |
parseDate(java.lang.String dateStr,
boolean isJdbcEscape,
LocaleFinder localeFinder,
java.util.Calendar cal)
|
void |
readExternal(java.io.ObjectInput in)
|
void |
readExternalFromArray(ArrayInputStream in)
Read the DataValueDescriptor from the stream. |
void |
restoreToNull()
Restore this object to its (SQL)null value. |
protected void |
setFrom(DataValueDescriptor theValue)
|
(package private) static NumberDataValue |
setSource(int value,
NumberDataValue source)
This helper routine tests the nullability of various parameters and sets up the result appropriately. |
void |
setValue(java.sql.Date value,
java.util.Calendar cal)
Set the value of this DataValueDescriptor. |
void |
setValue(java.lang.Object theValue)
Set the value of this DataValueDescriptor to the given value |
void |
setValue(java.lang.String theValue)
Set the value of this DataValueDescriptor. |
void |
setValue(java.sql.Timestamp value,
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. |
java.lang.String |
toString()
|
int |
typePrecedence()
Each built-in type in JSQL has a precedence. |
void |
writeExternal(java.io.ObjectOutput out)
|
Methods inherited from class org.apache.derby.iapi.types.DataType |
checkHostVariable, cloneObject, coalesce, dataTypeConversion, equals, equals, flip, genericSetObject, getBigDecimal, getBoolean, getByte, getBytes, getDouble, getFloat, getInt, getLong, getShort, getStream, getTime, greaterOrEquals, greaterThan, in, invalidFormat, isNotNull, isNullOp, lessOrEquals, lessThan, normalize, notEquals, outOfRange, setInto, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, 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, equals, getBigDecimal, getBoolean, getByte, getBytes, getDouble, getFloat, getInt, getLong, getShort, getStream, getTime, greaterOrEquals, greaterThan, in, isNotNull, isNullOp, lessOrEquals, lessThan, normalize, notEquals, setInto, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue |
Field Detail |
private int encodedDate
private java.lang.String valueString
private static final int BASE_MEMORY_USAGE
static final char ISO_SEPARATOR
private static final char[] ISO_SEPARATOR_ONLY
private static final char IBM_USA_SEPARATOR
private static final char[] IBM_USA_SEPARATOR_ONLY
private static final char IBM_EUR_SEPARATOR
private static final char[] IBM_EUR_SEPARATOR_ONLY
private static final char[] END_OF_STRING
Constructor Detail |
public SQLDate()
public SQLDate(java.sql.Date value) throws StandardException
private SQLDate(int encodedDate)
public SQLDate(java.lang.String dateStr, boolean isJdbcEscape, LocaleFinder localeFinder) throws StandardException
dateStr
- isJdbcEscape
- if true then only the JDBC date escape syntax is allowedlocaleFinder
-
Standard
- exception if the syntax is invalid or the value is out of range.
StandardException
public SQLDate(java.lang.String dateStr, boolean isJdbcEscape, LocaleFinder localeFinder, java.util.Calendar cal) throws StandardException
dateStr
- isJdbcEscape
- if true then only the JDBC date escape syntax is allowedlocaleFinder
-
Standard
- exception if the syntax is invalid or the value is out of range.
StandardException
Method Detail |
public int estimateMemoryUsage()
DataValueDescriptor
estimateMemoryUsage
in interface DataValueDescriptor
int getEncodedDate()
public java.lang.String getString()
DataValueDescriptor
getString
in interface DataValueDescriptor
public java.sql.Timestamp getTimestamp(java.util.Calendar cal)
getTimestamp
in interface DataValueDescriptor
getTimestamp
in class DataType
cal
- calendar for object creation
private long getTimeInMillis(java.util.Calendar cal)
private java.sql.Timestamp newTimestamp(java.util.Calendar cal)
public java.lang.Object getObject()
getObject
in interface DataValueDescriptor
getObject
in class DataType
public int getLength()
DataValueDescriptor
getLength
in interface DataValueDescriptor
public java.lang.String getTypeName()
DataValueDescriptor
getTypeName
in interface DataValueDescriptor
public int getTypeFormatId()
getTypeFormatId
in interface TypedFormat
TypedFormat.getTypeFormatId()
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
writeExternal
in interface java.io.Externalizable
java.io.IOException
- error writing datapublic void readExternal(java.io.ObjectInput in) throws java.io.IOException
readExternal
in interface java.io.Externalizable
java.io.IOException
- Thrown on error reading the objectExternalizable.readExternal(java.io.ObjectInput)
public void readExternalFromArray(ArrayInputStream in) throws java.io.IOException
DataValueDescriptor
Initialize the data value by reading it's values from the ArrayInputStream. This interface is provided as a way to achieve possible performance enhancement when reading an array can be optimized over reading from a generic stream from readExternal().
readExternalFromArray
in interface DataValueDescriptor
in
- The array stream positioned at the beginning of the
byte stream to read from.
java.io.IOException
- Usual error is if you try to read
past limit on the stream.public DataValueDescriptor getClone()
DataValueDescriptor
Clone the DataValueDescriptor and copy its contents. We clone the data value wrapper (e.g. SQLDecimal) and reuse its contents (the underlying BigDecimal). The resultant DataValueDescriptor will point to the same value as the original DataValueDescriptor (unless the value is a primitive type, e.g. SQLInteger/integer).
getClone
in interface DataValueDescriptor
DataValueDescriptor.getClone()
public DataValueDescriptor getNewNull()
DataValueDescriptor
getNewNull
in interface DataValueDescriptor
DataValueDescriptor.getNewNull()
public void restoreToNull()
Storable
restoreToNull
in interface Storable
Storable.restoreToNull()
public void setValueFromResultSet(java.sql.ResultSet resultSet, int colNumber, boolean isNullable) throws java.sql.SQLException, StandardException
DataValueDescriptor
setValueFromResultSet
in interface DataValueDescriptor
resultSet
- The specified ResultSet.colNumber
- The 1-based column # into the resultSet.isNullable
- Whether or not the column is nullable
(No need to call wasNull() if not)
java.sql.SQLException
- Thrown on error
StandardException
- Thrown on errorDataValueDescriptor.setValueFromResultSet(java.sql.ResultSet, int, boolean)
public int compare(DataValueDescriptor other) throws StandardException
compare
in interface DataValueDescriptor
other
- The Orderable to compare this one to.
StandardException
- thrown on failureOrderable
public boolean compare(int op, DataValueDescriptor other, boolean orderedNulls, boolean unknownRV) throws StandardException
DataValueDescriptor
compare
in interface DataValueDescriptor
compare
in class DataType
StandardException
- thrown on errorprivate void parseDate(java.util.Date value) throws StandardException
StandardException
private void parseDate(java.lang.String dateStr, boolean isJdbcEscape, LocaleFinder localeFinder, java.util.Calendar cal) throws StandardException
StandardException
public void setValue(java.lang.Object theValue) throws StandardException
DataValueDescriptor
setValue
in interface DataValueDescriptor
setValue
in class DataType
StandardException
protected void setFrom(DataValueDescriptor theValue) throws StandardException
setFrom
in class DataType
StandardException
public void setValue(java.sql.Date value, java.util.Calendar cal) throws StandardException
DataValueDescriptor
setValue
in interface DataValueDescriptor
setValue
in class DataType
value
- The Date value to set this DataValueDescriptor tocal
- The time zone from the calendar is used to construct the database date value
StandardException
DataValueDescriptor.setValue(java.lang.Object)
public void setValue(java.sql.Timestamp value, java.util.Calendar cal) throws StandardException
DataValueDescriptor
setValue
in interface DataValueDescriptor
setValue
in class DataType
value
- The Timestamp value to set this DataValueDescriptor tocal
- The time zone from the calendar is used to construct the database timestamp value
StandardException
DataValueDescriptor.setValue(java.lang.Object)
public void setValue(java.lang.String theValue) throws StandardException
DataValueDescriptor
setValue
in interface DataValueDescriptor
setValue
in class DataType
theValue
- The BigDecimal value to set this DataValueDescriptor to
StandardException
public NumberDataValue getYear(NumberDataValue result) throws StandardException
DateTimeDataValue
getYear
in interface DateTimeDataValue
result
- The result of the previous call to this method, null
if not called yet.
StandardException
- Thrown on errorDateTimeDataValue.getYear(org.apache.derby.iapi.types.NumberDataValue)
public NumberDataValue getMonth(NumberDataValue result) throws StandardException
DateTimeDataValue
getMonth
in interface DateTimeDataValue
result
- The result of the previous call to this method, null
if not called yet.
StandardException
- Thrown on errorDateTimeDataValue.getMonth(org.apache.derby.iapi.types.NumberDataValue)
public NumberDataValue getDate(NumberDataValue result) throws StandardException
DateTimeDataValue
getDate
in interface DateTimeDataValue
result
- The result of the previous call to this method, null
if not called yet.
StandardException
- Thrown on errorDateTimeDataValue.getDate(org.apache.derby.iapi.types.NumberDataValue)
public NumberDataValue getHours(NumberDataValue result) throws StandardException
DateTimeDataValue
getHours
in interface DateTimeDataValue
result
- The result of the previous call to this method, null
if not called yet.
StandardException
- Thrown on errorDateTimeDataValue.getHours(org.apache.derby.iapi.types.NumberDataValue)
public NumberDataValue getMinutes(NumberDataValue result) throws StandardException
DateTimeDataValue
getMinutes
in interface DateTimeDataValue
result
- The result of the previous call to this method, null
if not called yet.
StandardException
- Thrown on errorDateTimeDataValue.getMinutes(org.apache.derby.iapi.types.NumberDataValue)
public NumberDataValue getSeconds(NumberDataValue result) throws StandardException
DateTimeDataValue
getSeconds
in interface DateTimeDataValue
result
- The result of the previous call to this method, null
if not called yet.
StandardException
- Thrown on errorDateTimeDataValue.getSeconds(org.apache.derby.iapi.types.NumberDataValue)
public java.lang.String toString()
public int hashCode()
public int typePrecedence()
DataValueDescriptor
typePrecedence
in interface DataValueDescriptor
typePrecedence
in class DataType
DataValueDescriptor.typePrecedence()
public final boolean isNull()
isNull
in interface Storable
public java.sql.Date getDate(java.util.Calendar cal)
getDate
in interface DataValueDescriptor
getDate
in class DataType
cal
- calendar for object creation
static int getYear(int encodedDate)
encodedDate
- the encoded date
static int getMonth(int encodedDate)
encodedDate
- the encoded date
static int getDay(int encodedDate)
encodedDate
- the encoded date
static int computeEncodedDate(java.util.Calendar cal) throws StandardException
StandardException
- if the value is out of the DB2 date rangestatic int computeEncodedDate(int y, int m, int d) throws StandardException
StandardException
static void dateToString(int year, int month, int day, java.lang.StringBuffer sb)
year
- month
- 1 based (January == 1)day
- sb
- The string representation is appended to this StringBufferstatic java.lang.String encodedDateToString(int encodedDate)
protected java.lang.String getNationalString(LocaleFinder localeFinder) throws StandardException
getNationalString
in class DataType
StandardException
- Thrown on errorstatic NumberDataValue setSource(int value, NumberDataValue source) throws StandardException
StandardException
- Thrown on errorprivate static int computeEncodedDate(java.util.Date value) throws StandardException
StandardException
static int computeEncodedDate(java.util.Date value, java.util.Calendar currentCal) throws StandardException
StandardException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |