KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sleepycat > persist > PrimaryKeyValueAdapter


1 /*-
2  * See the file LICENSE for redistribution information.
3  *
4  * Copyright (c) 2002,2006 Oracle. All rights reserved.
5  *
6  * $Id: PrimaryKeyValueAdapter.java,v 1.5 2006/10/30 21:14:30 bostic Exp $
7  */

8
9 package com.sleepycat.persist;
10
11 import com.sleepycat.bind.EntryBinding;
12 import com.sleepycat.je.DatabaseEntry;
13
14 /**
15  * A ValueAdapter where the "value" is the primary key.
16  *
17  * @author Mark Hayes
18  */

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