Package com.sleepycat.db
Interface SecondaryKeyCreator
- All Known Implementing Classes:
SerialSerialKeyCreator,TupleSerialKeyCreator,TupleSerialMarshalledKeyCreator,TupleTupleKeyCreator,TupleTupleMarshalledKeyCreator
public interface SecondaryKeyCreator
The interface implemented for extracting single-valued secondary keys from
primary records.
The key creator object is specified by calling
SecondaryConfig.setKeyCreator.
The secondary database configuration is specified when calling
Environment.openSecondaryDatabase.
For example:
class MyKeyCreator implements SecondaryKeyCreator {
public boolean createSecondaryKey(SecondaryDatabase secondary,
DatabaseEntry key,
DatabaseEntry data,
DatabaseEntry result)
throws DatabaseException {
//
// DO HERE: Extract the secondary key from the primary key and
// data, and set the secondary key into the result parameter.
//
return true;
}
}
...
SecondaryConfig secConfig = new SecondaryConfig();
secConfig.setKeyCreator(new MyKeyCreator());
// Now pass secConfig to Environment.openSecondaryDatabase
-
Method Summary
Modifier and TypeMethodDescriptionbooleancreateSecondaryKey(SecondaryDatabase secondary, DatabaseEntry key, DatabaseEntry data, DatabaseEntry result) Creates a secondary key entry, given a primary key and data entry.
-
Method Details
-
createSecondaryKey
boolean createSecondaryKey(SecondaryDatabase secondary, DatabaseEntry key, DatabaseEntry data, DatabaseEntry result) throws DatabaseException Creates a secondary key entry, given a primary key and data entry.A secondary key may be derived from the primary key, primary data, or a combination of the primary key and data. For secondary keys that are optional, the key creator method may return false and the key/data pair will not be indexed. To ensure the integrity of a secondary database the key creator method must always return the same result for a given set of input parameters.
- Parameters:
secondary- the database to which the secondary key will be added. This parameter is passed for informational purposes but is not commonly used.key- the primary key entry. This parameter must not be modified by this method.data- the primary data entry. This parameter must not be modified by this method.result- the secondary key created by this method.- Returns:
- true if a key was created, or false to indicate that the key is not present.
- Throws:
DatabaseException- if an error occurs attempting to create the secondary key.
-