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

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `createSecondaryKey​(SecondaryDatabase secondary, DatabaseEntry key, DatabaseEntry data, DatabaseEntry result)` | Creates a secondary key entry, given a primary key and data entry.

- - ### Method Detail

    - #### 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.

Copyright (c) 1996, 2020 Oracle and/or its affiliates. All rights reserved.