com.sleepycat.persist.KeyValueAdapter Maven / Gradle / Ivy
The newest version!
/*-
* Copyright (C) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
*
* This file was distributed by Oracle as part of a version of Oracle Berkeley
* DB Java Edition made available at:
*
* http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
*
* Please see the LICENSE file included in the top-level directory of the
* appropriate version of Oracle Berkeley DB Java Edition for a copy of the
* license and additional information.
*/
package com.sleepycat.persist;
import com.sleepycat.bind.EntryBinding;
import com.sleepycat.je.DatabaseEntry;
/**
* A ValueAdapter where the "value" is the key (the primary key in a primary
* index or the secondary key in a secondary index).
*
* @author Mark Hayes
*/
class KeyValueAdapter implements ValueAdapter {
private EntryBinding keyBinding;
KeyValueAdapter(Class keyClass, EntryBinding keyBinding) {
this.keyBinding = keyBinding;
}
public DatabaseEntry initKey() {
return new DatabaseEntry();
}
public DatabaseEntry initPKey() {
return null;
}
public DatabaseEntry initData() {
return BasicIndex.NO_RETURN_ENTRY;
}
public void clearEntries(DatabaseEntry key,
DatabaseEntry pkey,
DatabaseEntry data) {
key.setData(null);
}
public V entryToValue(DatabaseEntry key,
DatabaseEntry pkey,
DatabaseEntry data) {
return (V) keyBinding.entryToObject(key);
}
public void valueToData(V value, DatabaseEntry data) {
throw new UnsupportedOperationException
("Cannot change the data in a key-only index");
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy