/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2002, 2015 Oracle and/or its affiliates. All rights reserved. * */ package com.sleepycat.persist; import com.sleepycat.bind.EntryBinding; import com.sleepycat.db.DatabaseEntry; /** * A ValueAdapter where the "value" is the data, although the data in this case * is the primary key in a KeysIndex. * * @author Mark Hayes */ class DataValueAdapter<V> implements ValueAdapter<V> { private EntryBinding dataBinding; DataValueAdapter(Class<V> keyClass, EntryBinding dataBinding) { this.dataBinding = dataBinding; } public DatabaseEntry initKey() { return new DatabaseEntry(); } public DatabaseEntry initPKey() { return null; } public DatabaseEntry initData() { return new DatabaseEntry(); } public void clearEntries(DatabaseEntry key, DatabaseEntry pkey, DatabaseEntry data) { key.setData(null); data.setData(null); } public V entryToValue(DatabaseEntry key, DatabaseEntry pkey, DatabaseEntry data) { return (V) dataBinding.entryToObject(data); } public void valueToData(V value, DatabaseEntry data) { throw new UnsupportedOperationException ("Cannot change the data in a key-only index"); } }