java.io.Externalizable
, java.io.Serializable
, java.lang.Comparable
, Formatable
, Storable
, TypedFormat
, BooleanDataValue
, DataValueDescriptor
, Orderable
public final class SQLBoolean extends DataType implements BooleanDataValue
Because DataType is a subtype of DataType, SQLBoolean can play a role in either a DataType/Row or a DataType/Row, interchangeably.
We assume the store has a flag for nullness of the value, and simply return a 0-length array for the stored form when the value is null.
PERFORMANCE: There are likely alot of performance improvements possible for this implementation -- it new's Integer more than it probably wants to.
Modifier and Type | Field | Description |
---|---|---|
private static int |
BASE_MEMORY_USAGE |
|
private static SQLBoolean |
BOOLEAN_FALSE |
|
(package private) static int |
BOOLEAN_LENGTH |
|
private static SQLBoolean |
BOOLEAN_TRUE |
|
private boolean |
immutable |
|
private boolean |
isnull |
|
(package private) static SQLBoolean |
UNKNOWN |
|
private boolean |
value |
UNKNOWN_LOGICAL_LENGTH
ORDER_OP_EQUALS, ORDER_OP_GREATEROREQUALS, ORDER_OP_GREATERTHAN, ORDER_OP_LESSOREQUALS, ORDER_OP_LESSTHAN
Modifier | Constructor | Description |
---|---|---|
|
SQLBoolean() |
|
|
SQLBoolean(boolean val) |
|
private |
SQLBoolean(boolean val,
boolean isnull) |
|
|
SQLBoolean(java.lang.Boolean obj) |
Modifier and Type | Method | Description |
---|---|---|
BooleanDataValue |
and(BooleanDataValue otherValue) |
The AND operator.
|
DataValueDescriptor |
cloneValue(boolean forceMaterialization) |
Clone this DataValueDescriptor.
|
boolean |
compare(int op,
DataValueDescriptor other,
boolean orderedNulls,
boolean unknownRV) |
Compare this Orderable with a given Orderable for the purpose of
qualification and sorting.
|
int |
compare(DataValueDescriptor other) |
Compare this Orderable with a given Orderable for the purpose of
index positioning.
|
boolean |
equals(boolean val) |
Determine whether this SQLBoolean contains the given boolean value.
|
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.
|
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.
|
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.
|
BooleanDataValue |
getImmutable() |
Return an immutable BooleanDataValue with the same value as this.
|
int |
getInt() |
Gets the value in the data value descriptor as a int.
|
int |
getLength() |
Gets the length of the data value.
|
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.
|
java.lang.Object |
getObject() |
Gets the value in the data value descriptor as a int.
|
short |
getShort() |
Gets the value in the data value descriptor as a short.
|
java.lang.String |
getString() |
Gets the value in the data value descriptor as a String.
|
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.
|
int |
hashCode() |
|
BooleanDataValue |
is(BooleanDataValue otherValue) |
The SQL IS operator - consult any standard SQL reference for an explanation.
|
BooleanDataValue |
isNot(BooleanDataValue otherValue) |
Implements NOT IS.
|
boolean |
isNull() |
Return whether the value is null or not.
|
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.
|
private static int |
makeInt(boolean b) |
|
BooleanDataValue |
notEquals(DataValueDescriptor left,
DataValueDescriptor right) |
The <> operator as called from the language module, as opposed to
the storage module.
|
BooleanDataValue |
or(BooleanDataValue otherValue) |
The OR operator.
|
void |
readExternal(java.io.ObjectInput in) |
|
DataValueDescriptor |
recycle() |
Recycle this SQLBoolean object if possible.
|
void |
restoreToNull() |
Restore this object to its (SQL)null value.
|
void |
setBigDecimal(java.math.BigDecimal bigDecimal) |
Only to be called when the application sets a value using BigDecimal
|
protected void |
setFrom(DataValueDescriptor theValue) |
Set the value of this DataValueDescriptor based on the value
of the specified DataValueDescriptor.
|
void |
setInto(java.sql.PreparedStatement ps,
int position) |
Set the value into a PreparedStatement.
|
(package private) void |
setObject(java.lang.Object theValue) |
Set the value from an non-null object.
|
void |
setValue(boolean theValue) |
Set the value.
|
void |
setValue(byte theValue) |
Set the value of this DataValueDescriptor to the given byte value
At DataType level just throws an error lower classes will override
|
void |
setValue(double theValue) |
Set the value of this DataValueDescriptor to the given double value
At DataType level just throws an error lower classes will override
|
void |
setValue(float theValue) |
Set the value of this DataValueDescriptor to the given float value
At DataType level just throws an error lower classes will override
|
void |
setValue(int theValue) |
Set the value of this DataValueDescriptor to the given int value
At DataType level just throws an error lower classes will override
|
void |
setValue(long theValue) |
Set the value of this DataValueDescriptor to the given long value
At DataType level just throws an error lower classes will override
|
void |
setValue(short theValue) |
Set the value of this DataValueDescriptor to the given short value
At DataType level just throws an error lower classes will override
|
void |
setValue(java.lang.Boolean theValue) |
Set the value of this BooleanDataValue.
|
void |
setValue(java.lang.String theValue) |
Set the value of this BooleanDataValue to the given String.
|
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.
|
BooleanDataValue |
throwExceptionIfFalse(java.lang.String sqlState,
java.lang.String tableName,
java.lang.String constraintName) |
Throw an exception with the given SQLState if this BooleanDataValue
is false.
|
BooleanDataValue |
throwExceptionIfImmediateAndFalse(java.lang.String sqlState,
java.lang.String tableName,
java.lang.String constraintName,
Activation a,
int savedUUIDIdx) |
If this value is false and we have a deferred constraint, remember the
violation and proceed, else throw.
|
java.lang.String |
toString() |
|
static SQLBoolean |
truthValue(boolean value) |
Get a truth value.
|
static SQLBoolean |
truthValue(DataValueDescriptor leftOperand,
DataValueDescriptor rightOperand,
boolean truth) |
Return the SQL truth value for a comparison.
|
static SQLBoolean |
truthValue(DataValueDescriptor leftOperand,
DataValueDescriptor rightOperand,
java.lang.Boolean truth) |
same as above, but takes a Boolean, if it is null, unknownTruthValue is returned
|
int |
typePrecedence() |
Each built-in type in JSQL has a precedence.
|
int |
typeToBigDecimal() |
Implementation for BOOLEAN type.
|
static SQLBoolean |
unknownTruthValue() |
Return an unknown truth value.
|
void |
writeExternal(java.io.ObjectOutput out) |
checkHostVariable, cloneHolder, coalesce, compare, compare, compareTo, dataTypeConversion, equals, flip, genericSetObject, getBytes, getDate, getStream, getTime, getTimestamp, getTraceString, getTypeName, hasStream, in, invalidFormat, isNotNull, isNullOp, normalize, outOfRange, readExternalFromArray, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, throwLangSetMismatch, throwLangSetMismatch
checkHostVariable, cloneHolder, coalesce, compare, compare, getBytes, getDate, getStream, getTime, getTimestamp, getTraceString, hasStream, in, isNotNull, isNullOp, normalize, readExternalFromArray, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue
static final int BOOLEAN_LENGTH
private static final SQLBoolean BOOLEAN_TRUE
private static final SQLBoolean BOOLEAN_FALSE
static final SQLBoolean UNKNOWN
private static final int BASE_MEMORY_USAGE
private boolean value
private boolean isnull
private boolean immutable
public SQLBoolean()
public SQLBoolean(boolean val)
public SQLBoolean(java.lang.Boolean obj)
private SQLBoolean(boolean val, boolean isnull)
public boolean isNull()
Storable
public boolean getBoolean()
DataType
getBoolean
in interface BooleanDataValue
getBoolean
in interface DataValueDescriptor
getBoolean
in class DataType
private static int makeInt(boolean b)
public byte getByte()
DataType
getByte
in interface DataValueDescriptor
getByte
in class DataType
DataValueDescriptor.getByte()
public short getShort()
DataType
getShort
in interface DataValueDescriptor
getShort
in class DataType
DataValueDescriptor.getShort()
public int getInt()
DataType
getInt
in interface DataValueDescriptor
getInt
in class DataType
DataValueDescriptor.getInt()
public long getLong()
DataType
getLong
in interface DataValueDescriptor
getLong
in class DataType
DataValueDescriptor.getLong()
public float getFloat()
DataType
getFloat
in interface DataValueDescriptor
getFloat
in class DataType
DataValueDescriptor.getFloat()
public double getDouble()
DataType
getDouble
in interface DataValueDescriptor
getDouble
in class DataType
DataValueDescriptor.getDouble()
public int typeToBigDecimal()
typeToBigDecimal
in interface DataValueDescriptor
typeToBigDecimal
in class DataType
public java.lang.String getString()
DataValueDescriptor
getString
in interface DataValueDescriptor
public java.lang.Object getObject()
DataType
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 DataValueDescriptor recycle()
recycle
in interface DataValueDescriptor
recycle
in class DataType
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
public void readExternal(java.io.ObjectInput in) throws java.io.IOException
readExternal
in interface java.io.Externalizable
java.io.IOException
Externalizable.readExternal(java.io.ObjectInput)
public void restoreToNull()
Storable
restoreToNull
in interface Storable
Storable.restoreToNull()
public int compare(DataValueDescriptor other) throws StandardException
DataValueDescriptor
compare
in interface DataValueDescriptor
other
- The Orderable to compare this one to.StandardException
- thrown on errorpublic boolean compare(int op, DataValueDescriptor other, boolean orderedNulls, boolean unknownRV) throws StandardException
DataValueDescriptor
compare
in interface DataValueDescriptor
compare
in class DataType
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.StandardException
- thrown on errorpublic DataValueDescriptor cloneValue(boolean forceMaterialization)
DataValueDescriptor
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 if
forceMaterialization
is set to false
. An example is if
you need to access the value you just read using cloneValue
after the current transaction has ended, or after the source result set
has been closed.
cloneValue
in interface DataValueDescriptor
forceMaterialization
- any streams representing the data value will
be materialized if true
, the data value will be kept as a
stream if possible if false
DataValueDescriptor
with the same initial
value as this.DataValueDescriptor.cloneValue(boolean)
public DataValueDescriptor getNewNull()
DataValueDescriptor
getNewNull
in interface DataValueDescriptor
DataValueDescriptor.getNewNull()
public void setValueFromResultSet(java.sql.ResultSet resultSet, int colNumber, boolean isNullable) throws java.sql.SQLException
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 errorDataValueDescriptor.setValueFromResultSet(java.sql.ResultSet, int, boolean)
public final void setInto(java.sql.PreparedStatement ps, int position) throws java.sql.SQLException
setInto
in interface DataValueDescriptor
setInto
in class DataType
java.sql.SQLException
- Error setting value in PreparedStatementpublic void setValue(boolean theValue)
DataType
setValue
in interface DataValueDescriptor
setValue
in class DataType
theValue
- Contains the boolean value to set this toBooleanDataValue.setValue(java.lang.Boolean)
public void setValue(java.lang.Boolean theValue)
BooleanDataValue
setValue
in interface BooleanDataValue
theValue
- Contains the boolean value to set this BooleanDataValue
to. Null means set this BooleanDataValue to null.public void setValue(byte theValue)
DataType
setValue
in interface DataValueDescriptor
setValue
in class DataType
theValue
- The value to set this DataValueDescriptor topublic void setValue(short theValue)
DataType
setValue
in interface DataValueDescriptor
setValue
in class DataType
theValue
- The value to set this DataValueDescriptor topublic void setValue(int theValue)
DataType
setValue
in interface DataValueDescriptor
setValue
in class DataType
theValue
- The value to set this DataValueDescriptor topublic void setValue(long theValue)
DataType
setValue
in interface DataValueDescriptor
setValue
in class DataType
theValue
- The value to set this DataValueDescriptor topublic void setValue(float theValue)
DataType
setValue
in interface DataValueDescriptor
setValue
in class DataType
theValue
- The value to set this DataValueDescriptor topublic void setValue(double theValue)
DataType
setValue
in interface DataValueDescriptor
setValue
in class DataType
theValue
- The value to set this DataValueDescriptor topublic void setBigDecimal(java.math.BigDecimal bigDecimal) throws StandardException
DataType
setBigDecimal
in interface DataValueDescriptor
setBigDecimal
in class DataType
bigDecimal
- required to be a BigDecimal or null.StandardException
public void setValue(java.lang.String theValue) throws StandardException
setValue
in interface DataValueDescriptor
setValue
in class DataType
theValue
- The value to set this BooleanDataValue toStandardException
- Thrown on errorvoid setObject(java.lang.Object theValue)
DataType
setObject
in class DataType
DataValueDescriptor.setValue(int)
protected void setFrom(DataValueDescriptor theValue) throws StandardException
DataType
setFrom
in class DataType
theValue
- The DataValueDescriptor that holds the value to
which we want to set this DataValueDescriptor's value.StandardException
public BooleanDataValue equals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException
equals
in interface DataValueDescriptor
equals
in class DataType
left
- The value on the left side of the =right
- The value on the right side of the =StandardException
- Thrown on errorpublic BooleanDataValue notEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException
notEquals
in interface DataValueDescriptor
notEquals
in class DataType
left
- The value on the left side of the operatorright
- The value on the right side of the operatorStandardException
- Thrown on errorpublic BooleanDataValue lessThan(DataValueDescriptor left, DataValueDescriptor right) throws StandardException
lessThan
in interface DataValueDescriptor
lessThan
in class DataType
left
- The value on the left side of the operatorright
- The value on the right side of the operatorStandardException
- Thrown on errorpublic BooleanDataValue greaterThan(DataValueDescriptor left, DataValueDescriptor right) throws StandardException
greaterThan
in interface DataValueDescriptor
greaterThan
in class DataType
left
- The value on the left side of the operatorright
- The value on the right side of the operatorStandardException
- Thrown on errorpublic BooleanDataValue lessOrEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException
lessOrEquals
in interface DataValueDescriptor
lessOrEquals
in class DataType
left
- The value on the left side of the operatorright
- The value on the right side of the operatorStandardException
- Thrown on errorpublic BooleanDataValue greaterOrEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException
greaterOrEquals
in interface DataValueDescriptor
greaterOrEquals
in class DataType
left
- The value on the left side of the operatorright
- The value on the right side of the operatorStandardException
- Thrown on errorpublic BooleanDataValue and(BooleanDataValue otherValue)
and
in interface BooleanDataValue
otherValue
- The other boolean to AND with this onepublic BooleanDataValue or(BooleanDataValue otherValue)
or
in interface BooleanDataValue
otherValue
- The other boolean to OR with this onepublic BooleanDataValue is(BooleanDataValue otherValue)
is
in interface BooleanDataValue
otherValue
- BooleanDataValue to compare to. May be TRUE, FALSE, or UNKNOWN.public BooleanDataValue isNot(BooleanDataValue otherValue)
isNot
in interface BooleanDataValue
otherValue
- BooleanDataValue to compare to. May be TRUE, FALSE, or UNKNOWN.public BooleanDataValue throwExceptionIfFalse(java.lang.String sqlState, java.lang.String tableName, java.lang.String constraintName) throws StandardException
throwExceptionIfFalse
in interface BooleanDataValue
sqlState
- The SQLState of the exception to throw if
this SQLBoolean is false.tableName
- The name of the table to include in the exception
message.constraintName
- The name of the failed constraint to include
in the exception message.StandardException
- Thrown if this BooleanDataValue
is false.public BooleanDataValue throwExceptionIfImmediateAndFalse(java.lang.String sqlState, java.lang.String tableName, java.lang.String constraintName, Activation a, int savedUUIDIdx) throws StandardException
BooleanDataValue
AndNoShortCircuitNode
.throwExceptionIfImmediateAndFalse
in interface BooleanDataValue
sqlState
- The SQLState of the exception to throw if
this SQLBoolean is false.tableName
- The name of the table to include in the exception
message.constraintName
- The name of the failed constraint to include
in the exception message.a
- The activationsavedUUIDIdx
- The saved object number of the constraint's UUID.StandardException
- Thrown if this BooleanDataValue
is false.public int typePrecedence()
DataType
typePrecedence
in interface DataValueDescriptor
typePrecedence
in class DataType
DataValueDescriptor.typePrecedence()
public static SQLBoolean truthValue(DataValueDescriptor leftOperand, DataValueDescriptor rightOperand, boolean truth)
leftOperand
- The left operand of the binary comparisonrightOperand
- The right operand of the binary comparisontruth
- The truth value of the comparisonpublic static SQLBoolean truthValue(DataValueDescriptor leftOperand, DataValueDescriptor rightOperand, java.lang.Boolean truth)
public static SQLBoolean truthValue(boolean value)
value
- The value of the SQLBooleanpublic static SQLBoolean unknownTruthValue()
public boolean equals(boolean val)
equals
in interface BooleanDataValue
val
- The value to look forpublic BooleanDataValue getImmutable()
getImmutable
in interface BooleanDataValue
public java.lang.String toString()
toString
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public int estimateMemoryUsage()
DataValueDescriptor
estimateMemoryUsage
in interface DataValueDescriptor
Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.