1 8 9 package com.sleepycat.persist; 10 11 import com.sleepycat.bind.EntryBinding; 12 import com.sleepycat.je.DatabaseEntry; 13 14 20 class KeyValueAdapter<V> implements ValueAdapter<V> { 21 22 private EntryBinding keyBinding; 23 24 KeyValueAdapter(Class <V> keyClass, EntryBinding keyBinding) { 25 this.keyBinding = keyBinding; 26 } 27 28 public DatabaseEntry initKey() { 29 return new DatabaseEntry(); 30 } 31 32 public DatabaseEntry initPKey() { 33 return null; 34 } 35 36 public DatabaseEntry initData() { 37 return BasicIndex.NO_RETURN_ENTRY; 38 } 39 40 public void clearEntries(DatabaseEntry key, 41 DatabaseEntry pkey, 42 DatabaseEntry data) { 43 key.setData(null); 44 } 45 46 public V entryToValue(DatabaseEntry key, 47 DatabaseEntry pkey, 48 DatabaseEntry data) { 49 return (V) keyBinding.entryToObject(key); 50 } 51 52 public void valueToData(V value, DatabaseEntry data) { 53 throw new UnsupportedOperationException 54 ("Cannot change the data in a key-only index"); 55 } 56 } 57 | Popular Tags |