| java.lang.Object com.healthmarketscience.jackcess.Index
Inner Class :public enum EntryType | |
Inner Class :abstract public static class ColumnDescriptor | |
Inner Class :public static class Entry implements Comparable<Entry> | |
Inner Class :final public class EntryCursor | |
Constructor Summary | |
public | Index(Table table, int uniqueEntryCount, int uniqueEntryCountOffset) |
Method Summary | |
public void | addRow(Object[] row, RowId rowId) Adds a row to this index
Forces index initialization. | public int | compareTo(Index other) | public Object[] | constructIndexRow(String colName, Object value) Constructs an array of values appropriate for this index from the given
column value. | public Object[] | constructIndexRow(Map<String, Object> row) Constructs an array of values appropriate for this index from the given
column values. | public Object[] | constructIndexRowFromEntry(Object... values) Constructs an array of values appropriate for this index from the given
column values, expected to match the columns for this index. | public EntryCursor | cursor() Gets a new cursor for this index. | public EntryCursor | cursor(Object[] startRow, boolean startInclusive, Object[] endRow, boolean endInclusive) Gets a new cursor for this index, narrowed to the range defined by the
given startRow and endRow. | public void | deleteRow(Object[] row, RowId rowId) Removes a row from this index
Forces index initialization. | public List<ColumnDescriptor> | getColumns() | int | getEntryCount() Returns the number of index entries in the index. | public JetFormat | getFormat() | public byte | getIndexFlags() | public int | getIndexNumber() | public String | getName() | public PageChannel | getPageChannel() | public Table | getTable() | public int | getUniqueEntryCount() | public int | getUniqueEntryCountOffset() | public void | initialize() Forces initialization of this index (actual parsing of index pages). | public boolean | isForeignKey() | public boolean | isInitialized() Whether or not the complete index state has been read. | public boolean | isPrimaryKey() | public boolean | isUnique() Whether or not index entries must be unique. | public void | read(ByteBuffer tableBuffer, List<Column> availableColumns) | public void | setIndexNumber(int indexNumber) | public void | setIndexType(byte indexType) | public void | setName(String name) | public boolean | shouldIgnoreNulls() Whether or not
null values are actually recorded in the index. | public String | toString() | public void | update() Writes the current index state to the database. |
FIRST_ENTRY | final public static Entry FIRST_ENTRY(Code) | | special entry which is less than any other entry
|
LAST_ENTRY | final public static Entry LAST_ENTRY(Code) | | special entry which is greater than any other entry
|
_readOnly | boolean _readOnly(Code) | | FIXME, for now, we can't write multi-page indexes or indexes using the funky primary key compression scheme
|
Index | public Index(Table table, int uniqueEntryCount, int uniqueEntryCountOffset)(Code) | | |
addRow | public void addRow(Object[] row, RowId rowId) throws IOException(Code) | | Adds a row to this index
Forces index initialization.
Parameters: row - Row to add Parameters: rowId - rowId of the row to be added |
constructIndexRow | public Object[] constructIndexRow(String colName, Object value)(Code) | | Constructs an array of values appropriate for this index from the given
column value.
the appropriate sparse array of data or null if not allcolumns for this index were provided |
constructIndexRow | public Object[] constructIndexRow(Map<String, Object> row)(Code) | | Constructs an array of values appropriate for this index from the given
column values.
the appropriate sparse array of data or null if not allcolumns for this index were provided |
constructIndexRowFromEntry | public Object[] constructIndexRowFromEntry(Object... values)(Code) | | Constructs an array of values appropriate for this index from the given
column values, expected to match the columns for this index.
the appropriate sparse array of data throws: IllegalArgumentException - if the wrong number of values areprovided |
cursor | public EntryCursor cursor() throws IOException(Code) | | Gets a new cursor for this index.
Forces index initialization.
|
cursor | public EntryCursor cursor(Object[] startRow, boolean startInclusive, Object[] endRow, boolean endInclusive) throws IOException(Code) | | Gets a new cursor for this index, narrowed to the range defined by the
given startRow and endRow.
Forces index initialization.
Parameters: startRow - the first row of data for the cursor, or null forthe first entry Parameters: startInclusive - whether or not startRow is inclusive or exclusive Parameters: endRow - the last row of data for the cursor, or null forthe last entry Parameters: endInclusive - whether or not endRow is inclusive or exclusive |
deleteRow | public void deleteRow(Object[] row, RowId rowId) throws IOException(Code) | | Removes a row from this index
Forces index initialization.
Parameters: row - Row to remove Parameters: rowId - rowId of the row to be removed |
getColumns | public List<ColumnDescriptor> getColumns()(Code) | | Returns the Columns for this index (unmodifiable)
|
getEntryCount | int getEntryCount() throws IOException(Code) | | Returns the number of index entries in the index. Only called by unit
tests.
Forces index initialization.
|
getIndexFlags | public byte getIndexFlags()(Code) | | |
getIndexNumber | public int getIndexNumber()(Code) | | |
getUniqueEntryCount | public int getUniqueEntryCount()(Code) | | |
getUniqueEntryCountOffset | public int getUniqueEntryCountOffset()(Code) | | |
initialize | public void initialize() throws IOException(Code) | | Forces initialization of this index (actual parsing of index pages).
normally, the index will not be initialized until the entries are
actually needed.
|
isForeignKey | public boolean isForeignKey()(Code) | | |
isInitialized | public boolean isInitialized()(Code) | | Whether or not the complete index state has been read.
|
isPrimaryKey | public boolean isPrimaryKey()(Code) | | |
isUnique | public boolean isUnique()(Code) | | Whether or not index entries must be unique.
Some notes about uniqueness:
- Access does not seem to consider multiple
null entries
invalid for a unique index
- text indexes collapse case, and Access seems to compare only
the index entry bytes, therefore two strings which differ only in
case will violate the unique constraint
|
read | public void read(ByteBuffer tableBuffer, List<Column> availableColumns) throws IOException(Code) | | Read the index info from a tableBuffer
Parameters: tableBuffer - table definition buffer to read from initial info Parameters: availableColumns - Columns that this index may use |
setIndexNumber | public void setIndexNumber(int indexNumber)(Code) | | |
setIndexType | public void setIndexType(byte indexType)(Code) | | |
shouldIgnoreNulls | public boolean shouldIgnoreNulls()(Code) | | Whether or not
null values are actually recorded in the index.
|
update | public void update() throws IOException(Code) | | Writes the current index state to the database.
Forces index initialization.
|
|
|