com.coyotegulch.jisp

Interface ObjectIndex

public interface ObjectIndex

* ObjectIndex defines the concept of an index that associates key values with references to serializable objects. Concrete subclasses of ObjectIndex assume that an object's position (as given by a long value) is constant, regardless of the actual meaning of that position. In general, the position represents the * location (file pointer) of a Serializable object in an IndexedObjectDatabase. *

* Use the IndexedObjectDatabase.attachIndex method to attach an ObjectIndex * to a database. A database updates all attached indexes when it writes or removes objects * from its file.

See Also: ObjectIndex IndexedObjectDatabase

Method Summary
longfindKey(KeyObject key)
Find the position of the object associated with a given key.
voidinsertKey(KeyObject key, long pos)
Insert a key into the database, associating a record position with the given key.
voidremoveKey(KeyObject key)
Removes the given key from the index.
voidreplaceKey(KeyObject key, long pos)
Replace the reference pos for the given key.
voidstoreKey(KeyObject key, long pos)
If the key already exists, replace the reference pos for the given key.

Method Detail

findKey

public long findKey(KeyObject key)
Find the position of the object associated with a given key.

Parameters: key A key identifying the record to be read.

Returns: The position of the record associated with key.

Throws: IOException when an I/O exception is thrown by an underlying java.io.* class ClassNotFoundException for a casting error, usually when a persistent object or index does match the expected type KeyNotFound when the specified key can not be found in the index

See Also: KeyNotFound KeyObject

insertKey

public void insertKey(KeyObject key, long pos)
Insert a key into the database, associating a record position with the given key. Throws a DuplicateKey exception if the key already exists.

Parameters: key A key identifying the record to be read. pos File position of record associated with key

Throws: IOException when an I/O exception is thrown by an underlying java.io.* class ClassNotFoundException for a casting error, usually when a persistent object or index does match the expected type DuplicateKey when inserting a duplicate key into an index that does not support duplicates

See Also: DuplicateKey KeyObject

removeKey

public void removeKey(KeyObject key)
Removes the given key from the index.

Parameters: key A key identifying the record to be read.

Throws: IOException when an I/O exception is thrown by an underlying java.io.* class ClassNotFoundException for a casting error, usually when a persistent object or index does match the expected type KeyNotFound when the specified key can not be found in the index

See Also: KeyNotFound KeyObject

replaceKey

public void replaceKey(KeyObject key, long pos)
Replace the reference pos for the given key. Throws a KeyNotFound exception if the requested key does not exist in the index.

Parameters: key A key identifying the record to be read. pos File position of record associated with key

Throws: IOException when an I/O exception is thrown by an underlying java.io.* class ClassNotFoundException for a casting error, usually when a persistent object or index does match the expected type KeyNotFound when the specified key can not be found in the index

See Also: KeyNotFound KeyObject

storeKey

public void storeKey(KeyObject key, long pos)
If the key already exists, replace the reference pos for the given key. Otherwise, insert a key into the database, associating a record position with the given key.

Parameters: key A key identifying the record to be read. pos File position of record associated with key

Throws: IOException when an I/O exception is thrown by an underlying java.io.* class ClassNotFoundException for a casting error, usually when a persistent object or index does match the expected type

See Also: KeyObject