Package com.mckoi.database
Class CollatedBaseSearch
java.lang.Object
com.mckoi.database.SelectableScheme
com.mckoi.database.CollatedBaseSearch
- Direct Known Subclasses:
InsertSearch
An implementation of SelectableScheme that is based on some collated set of
data. This can be used to implement more advanced types of selectable
schemes based on presistant indexes (see InsertSearch).
The default implementation maintains no state,
Derived classes are required to implement 'copy', 'searchFirst' and 'searchLast' methods. With these basic methods, a selectable scheme can be generated provided the column is sorted in ascending order (value of row i is invalid input: '<'= value of row i+1). Overwrite 'firstInCollationOrder', 'lastInCollationOrder' and 'addRangeToSet' methods for non sorted underlying sets.
Assumptions - the underlying column is sorted low to high (value of row i is invalid input: '<'= value of row i+1).
- Author:
- Tobias Downer
-
Field Summary
Fields inherited from class com.mckoi.database.SelectableScheme
EMPTY_LIST, ONE_LIST
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected IntegerVector
addRangeToSet
(int start, int end, IntegerVector ivec) Adds the set indexes to the list that represent the range of values between the start (inclusive) and end offset (inclusive) given.void
dispose()
Disposes and invalidates the BlindSearch.protected TObject
Returns the first value of this column (in collated order).void
insert
(int row) This scheme doesn't take any notice of insertions or removals.protected TObject
Returns the last value of this column (in collated order).void
readFrom
(InputStream in) Reads the entire state of the scheme from the input stream.void
remove
(int row) This scheme doesn't take any notice of insertions or removals.protected abstract int
searchFirst
(TObject val) Finds the position in the collated set of the first value in the column equal to the given value.protected abstract int
searchLast
(TObject val) Finds the position in the collated set of the last value in the column equal to the given value.These are the select operations that are the main purpose of the scheme.selectRange
(SelectableRange range) selectRange
(SelectableRange[] ranges) protected int
setSize()
The size of the set (the number of rows in this column).void
writeTo
(OutputStream out) Writes the entire state of the scheme to the output stream.Methods inherited from class com.mckoi.database.SelectableScheme
copy, Debug, getCellContents, getColumn, getSubsetScheme, getSystem, getTable, internalOrderIndexSet, isImmutable, selectAllNonNull, selectBetween, selectEqual, selectFirst, selectGreater, selectGreaterOrEqual, selectLast, selectLess, selectLessOrEqual, selectNotEqual, selectNotFirst, selectNotLast, setImmutable, toString
-
Constructor Details
-
CollatedBaseSearch
The Constructor.
-
-
Method Details
-
insert
public void insert(int row) This scheme doesn't take any notice of insertions or removals. -
remove
public void remove(int row) This scheme doesn't take any notice of insertions or removals. -
readFrom
Reads the entire state of the scheme from the input stream. This is a trivial case for BlindSearch which doesn't require any data to be stored.- Specified by:
readFrom
in classSelectableScheme
- Throws:
IOException
-
writeTo
Writes the entire state of the scheme to the output stream. This is a trivial case for BlindSearch which doesn't require any data to be stored.- Specified by:
writeTo
in classSelectableScheme
- Throws:
IOException
-
dispose
public void dispose()Disposes and invalidates the BlindSearch.- Specified by:
dispose
in classSelectableScheme
-
searchFirst
Finds the position in the collated set of the first value in the column equal to the given value. If the value is not to be found in the column, it returns -(insert_position + 1). -
searchLast
Finds the position in the collated set of the last value in the column equal to the given value. If the value is not to be found in the column, it returns -(insert_position + 1). -
setSize
protected int setSize()The size of the set (the number of rows in this column). -
firstInCollationOrder
Returns the first value of this column (in collated order). For example, if the column contains (1, 4, 8} then '1' is returned. -
lastInCollationOrder
Returns the last value of this column (in collated order). For example, if the column contains (1, 4, 8} then '8' is returned. -
addRangeToSet
Adds the set indexes to the list that represent the range of values between the start (inclusive) and end offset (inclusive) given. -
selectAll
Description copied from class:SelectableScheme
These are the select operations that are the main purpose of the scheme. They retrieve the given information from the set. Different schemes will have varying performance on different types of data sets. The select operations must *always* return a resultant row set that is sorted from lowest to highest.- Overrides:
selectAll
in classSelectableScheme
-
selectRange
-
selectRange
-