public class ColumnImpl extends Object implements Column, Comparable<ColumnImpl>
Modifier and Type | Class and Description |
---|---|
class |
ColumnImpl.AutoNumberGenerator
Base class for the supported autonumber types.
|
static class |
ColumnImpl.SortOrder
Information about the sort order (collation) for a textual column.
|
Modifier and Type | Field and Description |
---|---|
static byte |
AUTO_NUMBER_FLAG_MASK
mask for the auto number bit
|
static byte |
AUTO_NUMBER_GUID_FLAG_MASK
mask for the auto number guid bit
|
protected static byte |
COMPRESSED_UNICODE_EXT_FLAG_MASK |
static byte |
FIXED_LEN_FLAG_MASK
mask for the fixed len bit
|
static ColumnImpl.SortOrder |
GENERAL_LEGACY_SORT_ORDER
the "general" text sort order, legacy version (access 2000-2007)
|
static ColumnImpl.SortOrder |
GENERAL_SORT_ORDER
the "general" text sort order, latest version (access 2010+)
|
static byte |
HYPERLINK_FLAG_MASK
mask for the hyperlink bit (on memo types)
|
protected static org.apache.commons.logging.Log |
LOG |
static Object |
RETURN_ROW_ID
Placeholder object for adding rows which indicates that the caller wants
the RowId of the new row.
|
static byte |
UNKNOWN_FLAG_MASK
mask for the unknown bit (possible "can be null"?)
|
AUTO_NUMBER, KEEP_VALUE
Modifier | Constructor and Description |
---|---|
protected |
ColumnImpl(TableImpl table,
String name,
DataType type,
int colNumber,
int fixedOffset,
int varLenIndex) |
Modifier and Type | Method and Description |
---|---|
protected static Object |
booleanToInteger(Object obj)
Treat booleans as integers (C-style).
|
int |
compareTo(ColumnImpl other)
Orders Columns by column number.
|
static short |
countVariableLength(List<ColumnBuilder> columns) |
static ColumnImpl |
create(TableImpl table,
ByteBuffer buffer,
int offset,
String name,
int displayIndex)
Creates the appropriate ColumnImpl class and reads a column definition in
from a buffer
|
static String |
decodeUncompressedText(byte[] textBytes,
Charset charset) |
static ByteBuffer |
encodeUncompressedText(CharSequence text,
Charset charset) |
long |
fromDateDouble(double value)
Returns a java long time value converted from an access date double.
|
ColumnImpl.AutoNumberGenerator |
getAutoNumberGenerator()
Returns the AutoNumberGenerator for this column if this is an autonumber
column,
null otherwise. |
protected Calendar |
getCalendar() |
protected Charset |
getCharset() |
int |
getColumnIndex() |
short |
getColumnNumber() |
ColumnValidator |
getColumnValidator()
Gets currently configured ColumnValidator (always non-
null ). |
ComplexColumnInfo<? extends ComplexValue> |
getComplexInfo()
Returns extended functionality for "complex" columns.
|
DatabaseImpl |
getDatabase() |
int |
getDisplayIndex() |
int |
getFixedDataOffset() |
JetFormat |
getFormat() |
short |
getLength() |
short |
getLengthInUnits() |
String |
getName() |
int |
getOwnedPageCount()
Returns the number of database pages owned by this column.
|
PageChannel |
getPageChannel() |
byte |
getPrecision() |
PropertyMap |
getProperties() |
Object |
getRowValue(Map<String,?> rowMap) |
Object |
getRowValue(Object[] rowArray) |
byte |
getScale() |
int |
getSQLType() |
TableImpl |
getTable() |
short |
getTextCodePage() |
ColumnImpl.SortOrder |
getTextSortOrder() |
DataType |
getType() |
int |
getVarLenTableIndex() |
ColumnImpl |
getVersionHistoryColumn()
Returns the column which tracks the version history for an "append only"
column.
|
boolean |
isAppendOnly()
Whether or not this column is "append only" (its history is tracked by a
separate version history column).
|
boolean |
isAutoNumber() |
boolean |
isCalculated()
Returns whether or not this is a calculated column.
|
boolean |
isCompressedUnicode() |
boolean |
isHyperlink()
Returns whether or not this is a hyperlink column (only possible for
columns of type MEMO).
|
static boolean |
isRawData(Object value)
Returns
true if the given value is "raw" column data,
false otherwise. |
boolean |
isVariableLength() |
static com.healthmarketscience.jackcess.impl.ColumnImpl.RawData |
rawDataWrapper(byte[] bytes)
Returns a wrapper for raw column data that can be written without
understanding the data.
|
Object |
read(byte[] data)
Deserialize a raw byte value for this column into an Object
|
Object |
read(byte[] data,
ByteOrder order)
Deserialize a raw byte value for this column into an Object
|
Object |
readFromNullMask(boolean isNull) |
void |
setColumnIndex(int newColumnIndex) |
void |
setColumnValidator(ColumnValidator newValidator)
Sets a new ColumnValidator.
|
Object |
setRowValue(Map<String,Object> rowMap,
Object value) |
Object |
setRowValue(Object[] rowArray,
Object value) |
void |
setVersionHistoryColumn(ColumnImpl versionHistoryCol) |
boolean |
storeInNullMask() |
static boolean |
toBooleanValue(Object obj)
Interpret a boolean value (null == false)
|
static byte[] |
toByteArray(Object value) |
static CharSequence |
toCharSequence(Object value) |
double |
toDateDouble(Object value)
Returns an access date double converted from a java Date/Calendar/Number
time value.
|
static Object |
toInternalValue(DataType dataType,
Object value)
Converts the given value to the "internal" representation for the given
data type.
|
String |
toString() |
Object |
validate(Object obj)
Passes the given obj through the currently configured validator for this
column and returns the result.
|
ByteBuffer |
write(Object obj,
int remainingRowLength)
Serialize an Object into a raw byte value for this column in little
endian order
|
ByteBuffer |
write(Object obj,
int remainingRowLength,
ByteOrder order)
Serialize an Object into a raw byte value for this column
|
protected static void |
writeDefinitions(com.healthmarketscience.jackcess.impl.TableCreator creator,
ByteBuffer buffer)
Writes the column definitions into a table definition buffer.
|
protected ByteBuffer |
writeFixedLengthField(Object obj,
ByteBuffer buffer) |
protected ByteBuffer |
writeFixedLengthField(Object obj,
ByteOrder order)
Serialize an Object into a raw byte value for this column
|
protected ByteBuffer |
writeRealData(Object obj,
int remainingRowLength,
ByteOrder order) |
boolean |
writeToNullMask(Object value) |
protected static final org.apache.commons.logging.Log LOG
public static final Object RETURN_ROW_ID
public static final byte FIXED_LEN_FLAG_MASK
public static final byte AUTO_NUMBER_FLAG_MASK
public static final byte AUTO_NUMBER_GUID_FLAG_MASK
public static final byte HYPERLINK_FLAG_MASK
public static final byte UNKNOWN_FLAG_MASK
protected static final byte COMPRESSED_UNICODE_EXT_FLAG_MASK
public static final ColumnImpl.SortOrder GENERAL_LEGACY_SORT_ORDER
public static final ColumnImpl.SortOrder GENERAL_SORT_ORDER
public static ColumnImpl create(TableImpl table, ByteBuffer buffer, int offset, String name, int displayIndex) throws IOException
table
- owning tablebuffer
- Buffer containing column definitionoffset
- Offset in the buffer at which the column definition startsIOException
public DatabaseImpl getDatabase()
getDatabase
in interface Column
public JetFormat getFormat()
public PageChannel getPageChannel()
public boolean isVariableLength()
isVariableLength
in interface Column
public boolean isAutoNumber()
isAutoNumber
in interface Column
public short getColumnNumber()
public int getColumnIndex()
getColumnIndex
in interface Column
public void setColumnIndex(int newColumnIndex)
public int getDisplayIndex()
public int getSQLType() throws SQLException
getSQLType
in interface Column
SQLException
public boolean isCompressedUnicode()
isCompressedUnicode
in interface Column
public byte getPrecision()
getPrecision
in interface Column
public ColumnImpl.SortOrder getTextSortOrder()
public short getTextCodePage()
public short getLengthInUnits()
getLengthInUnits
in interface Column
public boolean isCalculated()
Column
isCalculated
in interface Column
public int getVarLenTableIndex()
public int getFixedDataOffset()
protected Charset getCharset()
protected Calendar getCalendar()
public boolean isAppendOnly()
Column
isAppendOnly
in interface Column
public ColumnImpl getVersionHistoryColumn()
Column
getVersionHistoryColumn
in interface Column
public int getOwnedPageCount()
public void setVersionHistoryColumn(ColumnImpl versionHistoryCol)
public boolean isHyperlink()
Column
isHyperlink
in interface Column
public ComplexColumnInfo<? extends ComplexValue> getComplexInfo()
Column
getComplexInfo
in interface Column
public ColumnValidator getColumnValidator()
Column
null
).getColumnValidator
in interface Column
public void setColumnValidator(ColumnValidator newValidator)
Column
null
, resets to the value
returned from the Database's ColumnValidatorFactory (if the factory
returns null
, then the default is used). Autonumber columns
cannot have a validator instance other than the default.setColumnValidator
in interface Column
public ColumnImpl.AutoNumberGenerator getAutoNumberGenerator()
null
otherwise.public PropertyMap getProperties() throws IOException
getProperties
in interface Column
IOException
public Object setRowValue(Object[] rowArray, Object value)
setRowValue
in interface Column
public Object setRowValue(Map<String,Object> rowMap, Object value)
setRowValue
in interface Column
public Object getRowValue(Object[] rowArray)
getRowValue
in interface Column
public Object getRowValue(Map<String,?> rowMap)
getRowValue
in interface Column
public boolean storeInNullMask()
public boolean writeToNullMask(Object value)
public Object readFromNullMask(boolean isNull)
public Object read(byte[] data) throws IOException
data
- The raw byte valueIOException
public Object read(byte[] data, ByteOrder order) throws IOException
data
- The raw byte valueorder
- Byte order in which the raw value is storedIOException
public long fromDateDouble(double value)
public double toDateDouble(Object value)
public Object validate(Object obj) throws IOException
IOException
public ByteBuffer write(Object obj, int remainingRowLength) throws IOException
obj
- Object to serializeIOException
public ByteBuffer write(Object obj, int remainingRowLength, ByteOrder order) throws IOException
obj
- Object to serializeorder
- Order in which to serializeIOException
protected ByteBuffer writeRealData(Object obj, int remainingRowLength, ByteOrder order) throws IOException
IOException
protected ByteBuffer writeFixedLengthField(Object obj, ByteOrder order) throws IOException
obj
- Object to serializeorder
- Order in which to serializeIOException
protected ByteBuffer writeFixedLengthField(Object obj, ByteBuffer buffer) throws IOException
IOException
public static String decodeUncompressedText(byte[] textBytes, Charset charset)
textBytes
- bytes of text to decodecharset
- relevant charsetpublic static ByteBuffer encodeUncompressedText(CharSequence text, Charset charset)
text
- Text to encodecharset
- database charsetpublic int compareTo(ColumnImpl other)
compareTo
in interface Comparable<ColumnImpl>
public static short countVariableLength(List<ColumnBuilder> columns)
columns
- A list of columns in a table definitionpublic static CharSequence toCharSequence(Object value) throws IOException
IOException
public static byte[] toByteArray(Object value) throws IOException
IOException
public static boolean toBooleanValue(Object obj)
protected static Object booleanToInteger(Object obj)
public static com.healthmarketscience.jackcess.impl.ColumnImpl.RawData rawDataWrapper(byte[] bytes)
public static boolean isRawData(Object value)
true
if the given value is "raw" column data,
false
otherwise.protected static void writeDefinitions(com.healthmarketscience.jackcess.impl.TableCreator creator, ByteBuffer buffer) throws IOException
buffer
- Buffer to write toIOException
public static Object toInternalValue(DataType dataType, Object value) throws IOException
IOException
Copyright © 2005–2018. All rights reserved.