Elexis API documentation
Version 2.1.6 as of December 11 2011

com.healthmarketscience.jackcess
Class Index

java.lang.Object
  extended by com.healthmarketscience.jackcess.Index
All Implemented Interfaces:
java.lang.Comparable<Index>
Direct Known Subclasses:
BigIndex, SimpleIndex

public abstract class Index
extends java.lang.Object
implements java.lang.Comparable<Index>

Access table index

Author:
Tim McCune

Nested Class Summary
static class Index.ColumnDescriptor
          Information about the columns in an index.
static class Index.Entry
          A single leaf entry in an index (points to a single row)
 class Index.EntryCursor
          Utility class to traverse the entries in the Index.
static class Index.EntryType
          type attributes for Entries which simplify comparisons
 
Field Summary
static Index.Entry FIRST_ENTRY
          special entry which is less than any other entry
static Index.Entry LAST_ENTRY
          special entry which is greater than any other entry
 
Method Summary
 void addRow(java.lang.Object[] row, RowId rowId)
          Adds a row to this index Forces index initialization.
 int compareTo(Index other)
           
 java.lang.Object[] constructIndexRow(java.util.Map<java.lang.String,java.lang.Object> row)
          Constructs an array of values appropriate for this index from the given column values.
 java.lang.Object[] constructIndexRow(java.lang.String colName, java.lang.Object value)
          Constructs an array of values appropriate for this index from the given column value.
 java.lang.Object[] constructIndexRowFromEntry(java.lang.Object... values)
          Constructs an array of values appropriate for this index from the given column values, expected to match the columns for this index.
 Index.EntryCursor cursor()
          Gets a new cursor for this index.
 Index.EntryCursor cursor(java.lang.Object[] startRow, boolean startInclusive, java.lang.Object[] endRow, boolean endInclusive)
          Gets a new cursor for this index, narrowed to the range defined by the given startRow and endRow.
 void deleteRow(java.lang.Object[] row, RowId rowId)
          Removes a row from this index Forces index initialization.
 java.util.List<Index.ColumnDescriptor> getColumns()
          Returns the Columns for this index (unmodifiable)
 JetFormat getFormat()
           
 byte getIndexFlags()
           
 int getIndexNumber()
           
 java.lang.String getName()
           
 PageChannel getPageChannel()
           
 Table getTable()
           
 int getUniqueEntryCount()
           
 int getUniqueEntryCountOffset()
           
 void initialize()
          Forces initialization of this index (actual parsing of index pages). normally, the index will not be initialized until the entries are actually needed.
 boolean isForeignKey()
           
 boolean isInitialized()
          Whether or not the complete index state has been read.
 boolean isPrimaryKey()
           
 boolean isUnique()
          Whether or not index entries must be unique.
 void read(java.nio.ByteBuffer tableBuffer, java.util.List<Column> availableColumns)
          Read the index info from a tableBuffer
 void setIndexNumber(int indexNumber)
           
 void setIndexType(byte indexType)
           
 void setName(java.lang.String name)
           
 boolean shouldIgnoreNulls()
          Whether or not null values are actually recorded in the index.
 java.lang.String toString()
           
 void update()
          Writes the current index state to the database.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

FIRST_ENTRY

public static final Index.Entry FIRST_ENTRY
special entry which is less than any other entry


LAST_ENTRY

public static final Index.Entry LAST_ENTRY
special entry which is greater than any other entry

Method Detail

getTable

public Table getTable()

getFormat

public JetFormat getFormat()

getPageChannel

public PageChannel getPageChannel()

setIndexNumber

public void setIndexNumber(int indexNumber)

getIndexNumber

public int getIndexNumber()

setIndexType

public void setIndexType(byte indexType)

getIndexFlags

public byte getIndexFlags()

getUniqueEntryCount

public int getUniqueEntryCount()

getUniqueEntryCountOffset

public int getUniqueEntryCountOffset()

getName

public java.lang.String getName()

setName

public void setName(java.lang.String name)

isPrimaryKey

public boolean isPrimaryKey()

isForeignKey

public boolean isForeignKey()

shouldIgnoreNulls

public boolean shouldIgnoreNulls()
Whether or not null values are actually recorded in the index.


isUnique

public boolean isUnique()
Whether or not index entries must be unique.

Some notes about uniqueness:


getColumns

public java.util.List<Index.ColumnDescriptor> getColumns()
Returns the Columns for this index (unmodifiable)


isInitialized

public boolean isInitialized()
Whether or not the complete index state has been read.


initialize

public void initialize()
                throws java.io.IOException
Forces initialization of this index (actual parsing of index pages). normally, the index will not be initialized until the entries are actually needed.

Throws:
java.io.IOException

update

public void update()
            throws java.io.IOException
Writes the current index state to the database.

Forces index initialization.

Throws:
java.io.IOException

read

public void read(java.nio.ByteBuffer tableBuffer,
                 java.util.List<Column> availableColumns)
          throws java.io.IOException
Read the index info from a tableBuffer

Parameters:
tableBuffer - table definition buffer to read from initial info
availableColumns - Columns that this index may use
Throws:
java.io.IOException

addRow

public void addRow(java.lang.Object[] row,
                   RowId rowId)
            throws java.io.IOException
Adds a row to this index

Forces index initialization.

Parameters:
row - Row to add
rowId - rowId of the row to be added
Throws:
java.io.IOException

deleteRow

public void deleteRow(java.lang.Object[] row,
                      RowId rowId)
               throws java.io.IOException
Removes a row from this index

Forces index initialization.

Parameters:
row - Row to remove
rowId - rowId of the row to be removed
Throws:
java.io.IOException

cursor

public Index.EntryCursor cursor()
                         throws java.io.IOException
Gets a new cursor for this index.

Forces index initialization.

Throws:
java.io.IOException

cursor

public Index.EntryCursor cursor(java.lang.Object[] startRow,
                                boolean startInclusive,
                                java.lang.Object[] endRow,
                                boolean endInclusive)
                         throws java.io.IOException
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 for the first entry
startInclusive - whether or not startRow is inclusive or exclusive
endRow - the last row of data for the cursor, or null for the last entry
endInclusive - whether or not endRow is inclusive or exclusive
Throws:
java.io.IOException

constructIndexRowFromEntry

public java.lang.Object[] constructIndexRowFromEntry(java.lang.Object... values)
Constructs an array of values appropriate for this index from the given column values, expected to match the columns for this index.

Returns:
the appropriate sparse array of data
Throws:
java.lang.IllegalArgumentException - if the wrong number of values are provided

constructIndexRow

public java.lang.Object[] constructIndexRow(java.lang.String colName,
                                            java.lang.Object value)
Constructs an array of values appropriate for this index from the given column value.

Returns:
the appropriate sparse array of data or null if not all columns for this index were provided

constructIndexRow

public java.lang.Object[] constructIndexRow(java.util.Map<java.lang.String,java.lang.Object> row)
Constructs an array of values appropriate for this index from the given column values.

Returns:
the appropriate sparse array of data or null if not all columns for this index were provided

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

compareTo

public int compareTo(Index other)
Specified by:
compareTo in interface java.lang.Comparable<Index>

Elexis API documentation
Version 2.1.6 as of December 11 2011

Copyright 2005-2011 by Gerry Weirich, Elexis