PrimaryKeyValueAdapter.java [plain text]
package com.sleepycat.persist;
import com.sleepycat.bind.EntryBinding;
import com.sleepycat.db.DatabaseEntry;
class PrimaryKeyValueAdapter<V> implements ValueAdapter<V> {
private EntryBinding keyBinding;
PrimaryKeyValueAdapter(Class<V> keyClass, EntryBinding keyBinding) {
this.keyBinding = keyBinding;
}
public DatabaseEntry initKey() {
return new DatabaseEntry();
}
public DatabaseEntry initPKey() {
return new DatabaseEntry();
}
public DatabaseEntry initData() {
return BasicIndex.NO_RETURN_ENTRY;
}
public void clearEntries(DatabaseEntry key,
DatabaseEntry pkey,
DatabaseEntry data) {
key.setData(null);
pkey.setData(null);
}
public V entryToValue(DatabaseEntry key,
DatabaseEntry pkey,
DatabaseEntry data) {
return (V) keyBinding.entryToObject(pkey);
}
public void valueToData(V value, DatabaseEntry data) {
throw new UnsupportedOperationException
("Cannot change the data in a key-only index");
}
}