public class CharacterType extends BaseDataType implements DataType.NonFixedPrecision
DataType
representing a single char value.DataType.BinaryRepresentation, DataType.ExactNumeric, DataType.NonFixedPrecision
Constructor and Description |
---|
CharacterType() |
CharacterType(int size) |
Modifier and Type | Method and Description |
---|---|
boolean |
accepts(java.lang.Object value)
Returns
true iff value is null , a
Character, or a single character String. |
int |
compare(java.lang.Object a,
java.lang.Object b) |
java.lang.Object |
convert(java.lang.Object value)
Returns an String converted from the given value , or throws
IllegalArgumentException if the given value isn't
acceptable . |
int |
getColumnDisplaySize()
Value returned by
ResultSetMetaData#getColumnDisplaySize for this data
type. |
protected java.util.Comparator |
getComparator()
This base implementation simply returns a
ComparableComparator . |
int |
getJdbcType()
Returns the JDBC
type code most closely matching this type. |
java.lang.String |
getLiteralPrefix()
Prefix used to quote a literal to delimit value for this type when in SQL syntax or
result display
|
java.lang.String |
getLiteralSuffix()
Suffix used to quote a literal to delimit value for this type when in SQL syntax or
result display
|
int |
getPrecision()
Value returned by
ResultSetMetaData#getPrecision for this data type. |
java.lang.String |
getPreferredValueClassName()
Returns the "normal" type returned by
DataType.convert(java.lang.Object) . |
short |
getSearchableCode()
Code indicating how much
WHERE ... |
boolean |
isCaseSensitive()
For character and string-related types, indicates whether type acknowledges case
when storing and retrieving values
|
DataType |
makeNewInstance()
Creates a new instance of this DataType implementation.
|
protected java.lang.String |
process(java.lang.String value) |
java.lang.Object |
read(java.io.DataInput in)
Instantiate an object of my type from the given
DataInput . |
protected java.lang.String |
rightTrim(java.lang.String source) |
void |
setPrecision(int newSize)
Overrides the default precision with the given value.
|
java.lang.Object |
successor(java.lang.Object value)
Returns the successor for the given value.
|
boolean |
supportsSuccessor()
Returns
true if the DataType.successor(java.lang.Object) method is supported, false
otherwise. |
byte[] |
toByteArray(java.lang.Object value)
|
java.lang.String |
toString()
Returns
"character" |
protected java.lang.String |
truncateIfLegal(java.lang.String source) |
void |
write(java.lang.Object value,
java.io.DataOutput out)
Writes the given value to the given
DataOutput .Null
values are written as Character.MIN_VALUE ,false . |
getNullableCode, getPrecisionRadix, getScale, isCurrency, isUnsigned, toBigDecimal, toBigInteger, toBlob, toBoolean, toByte, toClob, toDate, toDouble, toFloat, toInt, toLong, toNumber, toShort, toString, toTime, toTimestamp, toURL
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getNullableCode, getPrecisionRadix, getScale, isCurrency, isUnsigned, toBigDecimal, toBigInteger, toBlob, toBoolean, toByte, toClob, toDate, toDouble, toFloat, toInt, toLong, toShort, toString, toTime, toTimestamp, toURL
public CharacterType()
public CharacterType(int size)
public int getJdbcType()
DataType
type code
most closely matching this type.getJdbcType
in interface DataType
getJdbcType
in class BaseDataType
Types.CHAR
public java.lang.String getPreferredValueClassName()
DataType
DataType.convert(java.lang.Object)
. Returns
java.lang.Object if unknown.getPreferredValueClassName
in interface DataType
getPreferredValueClassName
in class BaseDataType
AxionResultSetMetaData.getColumnClassName(int)
public final int getPrecision()
DataType
ResultSetMetaData#getPrecision
for this data type.getPrecision
in interface DataType
getPrecision
in class BaseDataType
ResultSetMetaData.getPrecision(int)
public int getColumnDisplaySize()
DataType
ResultSetMetaData#getColumnDisplaySize
for this data
type.getColumnDisplaySize
in interface DataType
getColumnDisplaySize
in class BaseDataType
ResultSetMetaData.getColumnDisplaySize(int)
public boolean isCaseSensitive()
DataType
isCaseSensitive
in interface DataType
isCaseSensitive
in class BaseDataType
DatabaseMetaData.getTypeInfo()
,
ResultSetMetaData.isCaseSensitive(int)
public java.lang.String toString()
"character"
toString
in class java.lang.Object
"character"
public byte[] toByteArray(java.lang.Object value) throws AxionException
DataType
toByteArray
in interface DataType
toByteArray
in class BaseDataType
AxionException
ResultSet.getBytes(int)
public boolean accepts(java.lang.Object value)
true
iff value is null
, a
Character, or a single character String.accepts
in interface DataType
accepts
in class BaseDataType
value
- non- null
valuepublic boolean supportsSuccessor()
DataType
true
if the DataType.successor(java.lang.Object)
method is supported, false
otherwise.supportsSuccessor
in interface DataType
supportsSuccessor
in class BaseDataType
public java.lang.Object successor(java.lang.Object value) throws java.lang.IllegalArgumentException
DataType
successor
in interface DataType
successor
in class BaseDataType
java.lang.IllegalArgumentException
public java.lang.Object convert(java.lang.Object value) throws AxionException
IllegalArgumentException
if the given value isn't
acceptable
.convert
in interface DataType
convert
in class BaseDataType
AxionException
public java.lang.Object read(java.io.DataInput in) throws java.io.IOException
DataType
DataInput
. The next
sequence of bytes to be read from the DataInput
will have been
written by DataType.write(java.lang.Object, java.io.DataOutput)
.read
in interface DataType
read
in class BaseDataType
java.io.IOException
write(java.lang.Object, java.io.DataOutput)
public void write(java.lang.Object value, java.io.DataOutput out) throws java.io.IOException
DataOutput
.Null
values are written as Character.MIN_VALUE
,false
.
Character.MIN_VALUE
values are written as
Character.MIN_VALUE
,true
. All other values are
written directly.write
in interface DataType
write
in class BaseDataType
value
- the value to write, which must be acceptable
java.io.IOException
public DataType makeNewInstance()
DataType
makeNewInstance
in interface DataType
makeNewInstance
in interface DataTypeFactory
makeNewInstance
in class BaseDataType
public int compare(java.lang.Object a, java.lang.Object b)
compare
in interface java.util.Comparator
compare
in class BaseDataType
public void setPrecision(int newSize)
DataType.NonFixedPrecision
setPrecision
in interface DataType.NonFixedPrecision
newSize
- new precision value. The appropriate value depends on the
precision radix, which is fixed for each implementing type.public java.lang.String getLiteralPrefix()
DataType
getLiteralPrefix
in interface DataType
getLiteralPrefix
in class BaseDataType
DatabaseMetaData.getTypeInfo()
public java.lang.String getLiteralSuffix()
DataType
getLiteralSuffix
in interface DataType
getLiteralSuffix
in class BaseDataType
DatabaseMetaData.getTypeInfo()
public short getSearchableCode()
DataType
WHERE ... LIKE
support is available across
a column of this typegetSearchableCode
in interface DataType
getSearchableCode
in class BaseDataType
DatabaseMetaData.getTypeInfo()
protected java.util.Comparator getComparator()
BaseDataType
ComparableComparator
.getComparator
in class BaseDataType
protected java.lang.String process(java.lang.String value) throws AxionException
AxionException
protected final java.lang.String truncateIfLegal(java.lang.String source) throws AxionException
AxionException
protected final java.lang.String rightTrim(java.lang.String source)