com.healthmarketscience.jackcess.impl
Class JetFormat

java.lang.Object
  extended by com.healthmarketscience.jackcess.impl.JetFormat

public abstract class JetFormat
extends Object

Encapsulates constants describing a specific version of the Access Jet format

Author:
Tim McCune

Nested Class Summary
static class JetFormat.CodecType
           
 
Field Summary
 Charset CHARSET
           
 JetFormat.CodecType CODEC_TYPE
          type of page encoding supported
 int DATA_PAGE_INITIAL_FREE_SPACE
           
 ColumnImpl.SortOrder DEFAULT_SORT_ORDER
           
 byte[] HEADER_MASK
           
 boolean INDEXES_SUPPORTED
          whether or not we can use indexes in this format
 boolean LEGACY_NUMERIC_INDEXES
           
 int MAX_COLUMN_NAME_LENGTH
           
 int MAX_COLUMNS_PER_TABLE
           
 int MAX_COMPRESSED_UNICODE_SIZE
           
 long MAX_DATABASE_SIZE
           
 int MAX_INDEX_NAME_LENGTH
           
 int MAX_INDEXES_PER_TABLE
           
 int MAX_INLINE_LONG_VALUE_SIZE
           
 int MAX_LONG_VALUE_ROW_SIZE
           
 int MAX_NUM_ROWS_ON_DATA_PAGE
           
static int MAX_RECORD_SIZE
          Maximum size of a record minus OLE objects and Memo fields
 int MAX_ROW_SIZE
           
 int MAX_TABLE_NAME_LENGTH
           
 int OFFSET_CHILD_TAIL_INDEX_PAGE
           
 int OFFSET_CODE_PAGE
           
 int OFFSET_COLUMN_CODE_PAGE
           
 int OFFSET_COLUMN_COMPLEX_ID
           
 int OFFSET_COLUMN_EXT_FLAGS
           
 int OFFSET_COLUMN_FIXED_DATA_OFFSET
           
 int OFFSET_COLUMN_FIXED_DATA_ROW_OFFSET
           
 int OFFSET_COLUMN_FLAGS
           
 int OFFSET_COLUMN_LENGTH
           
 int OFFSET_COLUMN_NUMBER
           
 int OFFSET_COLUMN_PRECISION
           
 int OFFSET_COLUMN_SCALE
           
 int OFFSET_COLUMN_SORT_ORDER
           
 int OFFSET_COLUMN_TYPE
           
 int OFFSET_COLUMN_VARIABLE_TABLE_INDEX
           
 int OFFSET_ENCODING_KEY
           
 int OFFSET_FREE_SPACE
           
 int OFFSET_FREE_SPACE_PAGES
           
 int OFFSET_HEADER_DATE
           
 int OFFSET_INDEX_COMPRESSED_BYTE_COUNT
           
 int OFFSET_INDEX_DEF_BLOCK
           
 int OFFSET_INDEX_ENTRY_MASK
           
 int OFFSET_MASKED_HEADER
           
 int OFFSET_MAX_COLS
           
 int OFFSET_NEXT_AUTO_NUMBER
           
 int OFFSET_NEXT_COMPLEX_AUTO_NUMBER
           
 int OFFSET_NEXT_INDEX_PAGE
           
 int OFFSET_NEXT_TABLE_DEF_PAGE
           
 int OFFSET_NUM_COLS
           
 int OFFSET_NUM_INDEX_SLOTS
           
 int OFFSET_NUM_INDEXES
           
 int OFFSET_NUM_ROWS
           
 int OFFSET_NUM_ROWS_ON_DATA_PAGE
           
 int OFFSET_NUM_VAR_COLS
           
 int OFFSET_OWNED_PAGES
           
 int OFFSET_PASSWORD
           
 int OFFSET_PREV_INDEX_PAGE
           
 int OFFSET_REFERENCE_MAP_PAGE_NUMBERS
           
 int OFFSET_ROW_START
           
 int OFFSET_SORT_ORDER
           
 int OFFSET_TABLE_DEF_LOCATION
           
 int OFFSET_TABLE_TYPE
           
 int OFFSET_USAGE_MAP_PAGE_DATA
           
 int OFFSET_USAGE_MAP_START
           
 int PAGE_SIZE
          Database page size in bytes
 byte[] PROPERTY_MAP_TYPE
           
 boolean READ_ONLY
          the read/write mode of this format
 int SIZE_COLUMN_DEF_BLOCK
           
 int SIZE_COLUMN_HEADER
           
 int SIZE_INDEX_COLUMN_BLOCK
           
 int SIZE_INDEX_DEFINITION
           
 int SIZE_INDEX_ENTRY_MASK
           
 int SIZE_INDEX_INFO_BLOCK
           
 int SIZE_LONG_VALUE_DEF
           
 int SIZE_NAME_LENGTH
           
 int SIZE_PASSWORD
           
 int SIZE_ROW_COLUMN_COUNT
           
 int SIZE_ROW_LOCATION
           
 int SIZE_ROW_VAR_COL_OFFSET
           
 int SIZE_SORT_ORDER
           
 int SIZE_TDEF_HEADER
           
 int SIZE_TDEF_TRAILER
           
 int SKIP_AFTER_INDEX_FLAGS
           
 int SKIP_AFTER_INDEX_SLOT
           
 int SKIP_BEFORE_INDEX
           
 int SKIP_BEFORE_INDEX_FLAGS
           
 int SKIP_BEFORE_INDEX_SLOT
           
static short TEXT_FIELD_MAX_LENGTH
          Maximum size of a text field
static short TEXT_FIELD_UNIT_SIZE
          the "unit" size for text fields
 int USAGE_MAP_TABLE_BYTE_LENGTH
           
static JetFormat VERSION_12
          the JetFormat constants for the Jet database version "12"
static JetFormat VERSION_14
          the JetFormat constants for the Jet database version "14"
static JetFormat VERSION_3
          the JetFormat constants for the Jet database version "3"
static JetFormat VERSION_4
          the JetFormat constants for the Jet database version "4"
static JetFormat VERSION_MSISAM
          the JetFormat constants for the MSISAM database
 
Method Summary
static JetFormat getFormat(FileChannel channel)
           
abstract  boolean isSupportedCalculatedDataType(DataType type)
           
abstract  boolean isSupportedDataType(DataType type)
           
 String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MAX_RECORD_SIZE

public static final int MAX_RECORD_SIZE
Maximum size of a record minus OLE objects and Memo fields

See Also:
Constant Field Values

TEXT_FIELD_UNIT_SIZE

public static final short TEXT_FIELD_UNIT_SIZE
the "unit" size for text fields

See Also:
Constant Field Values

TEXT_FIELD_MAX_LENGTH

public static final short TEXT_FIELD_MAX_LENGTH
Maximum size of a text field

See Also:
Constant Field Values

VERSION_3

public static final JetFormat VERSION_3
the JetFormat constants for the Jet database version "3"


VERSION_4

public static final JetFormat VERSION_4
the JetFormat constants for the Jet database version "4"


VERSION_MSISAM

public static final JetFormat VERSION_MSISAM
the JetFormat constants for the MSISAM database


VERSION_12

public static final JetFormat VERSION_12
the JetFormat constants for the Jet database version "12"


VERSION_14

public static final JetFormat VERSION_14
the JetFormat constants for the Jet database version "14"


READ_ONLY

public final boolean READ_ONLY
the read/write mode of this format


INDEXES_SUPPORTED

public final boolean INDEXES_SUPPORTED
whether or not we can use indexes in this format


CODEC_TYPE

public final JetFormat.CodecType CODEC_TYPE
type of page encoding supported


PAGE_SIZE

public final int PAGE_SIZE
Database page size in bytes


MAX_DATABASE_SIZE

public final long MAX_DATABASE_SIZE

MAX_ROW_SIZE

public final int MAX_ROW_SIZE

DATA_PAGE_INITIAL_FREE_SPACE

public final int DATA_PAGE_INITIAL_FREE_SPACE

OFFSET_MASKED_HEADER

public final int OFFSET_MASKED_HEADER

HEADER_MASK

public final byte[] HEADER_MASK

OFFSET_HEADER_DATE

public final int OFFSET_HEADER_DATE

OFFSET_PASSWORD

public final int OFFSET_PASSWORD

SIZE_PASSWORD

public final int SIZE_PASSWORD

OFFSET_SORT_ORDER

public final int OFFSET_SORT_ORDER

SIZE_SORT_ORDER

public final int SIZE_SORT_ORDER

OFFSET_CODE_PAGE

public final int OFFSET_CODE_PAGE

OFFSET_ENCODING_KEY

public final int OFFSET_ENCODING_KEY

OFFSET_NEXT_TABLE_DEF_PAGE

public final int OFFSET_NEXT_TABLE_DEF_PAGE

OFFSET_NUM_ROWS

public final int OFFSET_NUM_ROWS

OFFSET_NEXT_AUTO_NUMBER

public final int OFFSET_NEXT_AUTO_NUMBER

OFFSET_NEXT_COMPLEX_AUTO_NUMBER

public final int OFFSET_NEXT_COMPLEX_AUTO_NUMBER

OFFSET_TABLE_TYPE

public final int OFFSET_TABLE_TYPE

OFFSET_MAX_COLS

public final int OFFSET_MAX_COLS

OFFSET_NUM_VAR_COLS

public final int OFFSET_NUM_VAR_COLS

OFFSET_NUM_COLS

public final int OFFSET_NUM_COLS

OFFSET_NUM_INDEX_SLOTS

public final int OFFSET_NUM_INDEX_SLOTS

OFFSET_NUM_INDEXES

public final int OFFSET_NUM_INDEXES

OFFSET_OWNED_PAGES

public final int OFFSET_OWNED_PAGES

OFFSET_FREE_SPACE_PAGES

public final int OFFSET_FREE_SPACE_PAGES

OFFSET_INDEX_DEF_BLOCK

public final int OFFSET_INDEX_DEF_BLOCK

SIZE_INDEX_COLUMN_BLOCK

public final int SIZE_INDEX_COLUMN_BLOCK

SIZE_INDEX_INFO_BLOCK

public final int SIZE_INDEX_INFO_BLOCK

OFFSET_COLUMN_TYPE

public final int OFFSET_COLUMN_TYPE

OFFSET_COLUMN_NUMBER

public final int OFFSET_COLUMN_NUMBER

OFFSET_COLUMN_PRECISION

public final int OFFSET_COLUMN_PRECISION

OFFSET_COLUMN_SCALE

public final int OFFSET_COLUMN_SCALE

OFFSET_COLUMN_SORT_ORDER

public final int OFFSET_COLUMN_SORT_ORDER

OFFSET_COLUMN_CODE_PAGE

public final int OFFSET_COLUMN_CODE_PAGE

OFFSET_COLUMN_COMPLEX_ID

public final int OFFSET_COLUMN_COMPLEX_ID

OFFSET_COLUMN_FLAGS

public final int OFFSET_COLUMN_FLAGS

OFFSET_COLUMN_EXT_FLAGS

public final int OFFSET_COLUMN_EXT_FLAGS

OFFSET_COLUMN_LENGTH

public final int OFFSET_COLUMN_LENGTH

OFFSET_COLUMN_VARIABLE_TABLE_INDEX

public final int OFFSET_COLUMN_VARIABLE_TABLE_INDEX

OFFSET_COLUMN_FIXED_DATA_OFFSET

public final int OFFSET_COLUMN_FIXED_DATA_OFFSET

OFFSET_COLUMN_FIXED_DATA_ROW_OFFSET

public final int OFFSET_COLUMN_FIXED_DATA_ROW_OFFSET

OFFSET_TABLE_DEF_LOCATION

public final int OFFSET_TABLE_DEF_LOCATION

OFFSET_ROW_START

public final int OFFSET_ROW_START

OFFSET_USAGE_MAP_START

public final int OFFSET_USAGE_MAP_START

OFFSET_USAGE_MAP_PAGE_DATA

public final int OFFSET_USAGE_MAP_PAGE_DATA

OFFSET_REFERENCE_MAP_PAGE_NUMBERS

public final int OFFSET_REFERENCE_MAP_PAGE_NUMBERS

OFFSET_FREE_SPACE

public final int OFFSET_FREE_SPACE

OFFSET_NUM_ROWS_ON_DATA_PAGE

public final int OFFSET_NUM_ROWS_ON_DATA_PAGE

MAX_NUM_ROWS_ON_DATA_PAGE

public final int MAX_NUM_ROWS_ON_DATA_PAGE

OFFSET_INDEX_COMPRESSED_BYTE_COUNT

public final int OFFSET_INDEX_COMPRESSED_BYTE_COUNT

OFFSET_INDEX_ENTRY_MASK

public final int OFFSET_INDEX_ENTRY_MASK

OFFSET_PREV_INDEX_PAGE

public final int OFFSET_PREV_INDEX_PAGE

OFFSET_NEXT_INDEX_PAGE

public final int OFFSET_NEXT_INDEX_PAGE

OFFSET_CHILD_TAIL_INDEX_PAGE

public final int OFFSET_CHILD_TAIL_INDEX_PAGE

SIZE_INDEX_DEFINITION

public final int SIZE_INDEX_DEFINITION

SIZE_COLUMN_HEADER

public final int SIZE_COLUMN_HEADER

SIZE_ROW_LOCATION

public final int SIZE_ROW_LOCATION

SIZE_LONG_VALUE_DEF

public final int SIZE_LONG_VALUE_DEF

MAX_INLINE_LONG_VALUE_SIZE

public final int MAX_INLINE_LONG_VALUE_SIZE

MAX_LONG_VALUE_ROW_SIZE

public final int MAX_LONG_VALUE_ROW_SIZE

MAX_COMPRESSED_UNICODE_SIZE

public final int MAX_COMPRESSED_UNICODE_SIZE

SIZE_TDEF_HEADER

public final int SIZE_TDEF_HEADER

SIZE_TDEF_TRAILER

public final int SIZE_TDEF_TRAILER

SIZE_COLUMN_DEF_BLOCK

public final int SIZE_COLUMN_DEF_BLOCK

SIZE_INDEX_ENTRY_MASK

public final int SIZE_INDEX_ENTRY_MASK

SKIP_BEFORE_INDEX_FLAGS

public final int SKIP_BEFORE_INDEX_FLAGS

SKIP_AFTER_INDEX_FLAGS

public final int SKIP_AFTER_INDEX_FLAGS

SKIP_BEFORE_INDEX_SLOT

public final int SKIP_BEFORE_INDEX_SLOT

SKIP_AFTER_INDEX_SLOT

public final int SKIP_AFTER_INDEX_SLOT

SKIP_BEFORE_INDEX

public final int SKIP_BEFORE_INDEX

SIZE_NAME_LENGTH

public final int SIZE_NAME_LENGTH

SIZE_ROW_COLUMN_COUNT

public final int SIZE_ROW_COLUMN_COUNT

SIZE_ROW_VAR_COL_OFFSET

public final int SIZE_ROW_VAR_COL_OFFSET

USAGE_MAP_TABLE_BYTE_LENGTH

public final int USAGE_MAP_TABLE_BYTE_LENGTH

MAX_COLUMNS_PER_TABLE

public final int MAX_COLUMNS_PER_TABLE

MAX_INDEXES_PER_TABLE

public final int MAX_INDEXES_PER_TABLE

MAX_TABLE_NAME_LENGTH

public final int MAX_TABLE_NAME_LENGTH

MAX_COLUMN_NAME_LENGTH

public final int MAX_COLUMN_NAME_LENGTH

MAX_INDEX_NAME_LENGTH

public final int MAX_INDEX_NAME_LENGTH

LEGACY_NUMERIC_INDEXES

public final boolean LEGACY_NUMERIC_INDEXES

CHARSET

public final Charset CHARSET

DEFAULT_SORT_ORDER

public final ColumnImpl.SortOrder DEFAULT_SORT_ORDER

PROPERTY_MAP_TYPE

public final byte[] PROPERTY_MAP_TYPE
Method Detail

getFormat

public static JetFormat getFormat(FileChannel channel)
                           throws IOException
Parameters:
channel - the database file.
Returns:
The Jet Format represented in the passed-in file
Throws:
IOException - if the database file format is unsupported.

isSupportedDataType

public abstract boolean isSupportedDataType(DataType type)

isSupportedCalculatedDataType

public abstract boolean isSupportedCalculatedDataType(DataType type)

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2005–2017 Health Market Science. All rights reserved.