// javadoc is inherited
  public boolean nullifyForeignKey(SecondaryDatabase db, DatabaseEntry dataEntry)
      throws DatabaseException {

    Object data = dataBinding.entryToObject(dataEntry);
    data = nullifyForeignKey(data);
    if (data != null) {
      dataBinding.objectToEntry(data, dataEntry);
      return true;
    } else {
      return false;
    }
  }
  // javadoc is inherited
  public boolean createSecondaryKey(
      SecondaryDatabase db,
      DatabaseEntry primaryKeyEntry,
      DatabaseEntry dataEntry,
      DatabaseEntry indexKeyEntry)
      throws DatabaseException {

    TupleOutput output = getTupleOutput(null);
    TupleInput primaryKeyInput = entryToInput(primaryKeyEntry);
    Object dataInput = dataBinding.entryToObject(dataEntry);
    if (createSecondaryKey(primaryKeyInput, dataInput, output)) {
      outputToEntry(output, indexKeyEntry);
      return true;
    } else {
      return false;
    }
  }
  // javadoc is inherited
  public void objectToData(E object, DatabaseEntry data) {

    D dataObject = objectToData(object);
    dataBinding.objectToEntry(dataObject, data);
  }
  // javadoc is inherited
  public E entryToObject(DatabaseEntry key, DatabaseEntry data) {

    return entryToObject(entryToInput(key), dataBinding.entryToObject(data));
  }