KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quadcap > sql > index > BIndex


1 package com.quadcap.sql.index;
2
3 /* Copyright 1997 - 2003 Quadcap Software. All rights reserved.
4  *
5  * This software is distributed under the Quadcap Free Software License.
6  * This software may be used or modified for any purpose, personal or
7  * commercial. Open Source redistributions are permitted. Commercial
8  * redistribution of larger works derived from, or works which bundle
9  * this software requires a "Commercial Redistribution License"; see
10  * http://www.quadcap.com/purchase.
11  *
12  * Redistributions qualify as "Open Source" under one of the following terms:
13  *
14  * Redistributions are made at no charge beyond the reasonable cost of
15  * materials and delivery.
16  *
17  * Redistributions are accompanied by a copy of the Source Code or by an
18  * irrevocable offer to provide a copy of the Source Code for up to three
19  * years at the cost of materials and delivery. Such redistributions
20  * must allow further use, modification, and redistribution of the Source
21  * Code under substantially the same terms as this license.
22  *
23  * Redistributions of source code must retain the copyright notices as they
24  * appear in each source code file, these license terms, and the
25  * disclaimer/limitation of liability set forth as paragraph 6 below.
26  *
27  * Redistributions in binary form must reproduce this Copyright Notice,
28  * these license terms, and the disclaimer/limitation of liability set
29  * forth as paragraph 6 below, in the documentation and/or other materials
30  * provided with the distribution.
31  *
32  * The Software is provided on an "AS IS" basis. No warranty is
33  * provided that the Software is free of defects, or fit for a
34  * particular purpose.
35  *
36  * Limitation of Liability. Quadcap Software shall not be liable
37  * for any damages suffered by the Licensee or any third party resulting
38  * from use of the Software.
39  */

40
41 import java.io.IOException JavaDoc;
42 import java.util.Enumeration JavaDoc;
43
44 /**
45  * An index is simply a map, with byte arrays as keys.
46  *
47  * @author Stan Bailes
48  */

49 public interface BIndex {
50     /**
51      * Return this index's comparator
52      */

53     public Comparator getComparator();
54
55     /**
56      * Delete this index
57      */

58     public void free() throws IOException JavaDoc;
59
60     /**
61      * Get the data bytes for the specified key. If the key is found, return
62      * the length of the data portion and place as many bytes as will fit in the
63      * data array. If the key isn't found, return -1.
64      */

65     public int get(byte[] key, int len, byte[] data) throws IOException JavaDoc;
66
67     /**
68      * Delete the specified key. Return true if the key was deleted.
69      */

70     public boolean delete(byte[] key) throws IOException JavaDoc;
71
72     /**
73      * Add a new key. If the index is a UNIQUE index, then
74      * the new key/data pair will only be added if the key does not already
75      * exist, otherwise, insert will do nothing and return <b>false</b>
76      * The existing value must not exist or an IOException will be thrown.
77      * Otherwise, the new key/data pair is added regardless.
78      */

79     public void insert(byte[] key, int klen,
80                           byte[] data, int off, int len) throws IOException JavaDoc;
81
82     /**
83      * Update the data value for an existing key. This only works for
84      * UNIQUE indexes, and only if the specified key already exists.
85      *
86      * @exception IOException may be thrown.
87      */

88     public void update(byte[] key, int klen,
89                        byte[] data, int off, int len) throws IOException JavaDoc;
90
91     /**
92      * Set the key/data pair, replacing any any value it may present in
93      * a unique index, inserting a new values, whatever. Return
94      * true if the key already existed before this operation.
95      */

96     public boolean set(byte[] key, int klen,
97                        byte[] data, int off, int len) throws IOException JavaDoc;
98
99     /**
100      * Obtain a cursor for most wondrously manipulating this index.
101      */

102     public BCursor getCursor(boolean skipSetup) throws IOException JavaDoc;
103
104 // /**
105
// * Close this index
106
// */
107
// public void close() throws IOException;
108
}
109
Popular Tags