diff options
Diffstat (limited to 'bdb/test/scr016/TestKeyRange.java')
-rw-r--r-- | bdb/test/scr016/TestKeyRange.java | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/bdb/test/scr016/TestKeyRange.java b/bdb/test/scr016/TestKeyRange.java deleted file mode 100644 index 8eda2de426f..00000000000 --- a/bdb/test/scr016/TestKeyRange.java +++ /dev/null @@ -1,203 +0,0 @@ -/*NOTE: TestKeyRange is AccessExample changed to test Db.key_range. - * See comments with ADDED for specific areas of change. - */ -/*- - * See the file LICENSE for redistribution information. - * - * Copyright (c) 1997-2002 - * Sleepycat Software. All rights reserved. - * - * $Id: TestKeyRange.java,v 1.4 2002/08/16 19:35:55 dda Exp $ - */ - -package com.sleepycat.test; - -import com.sleepycat.db.*; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.StringReader; -import java.io.Reader; -import java.io.IOException; -import java.io.PrintStream; - -public class TestKeyRange -{ - private static final String FileName = "access.db"; - - public TestKeyRange() - { - } - - private static void usage() - { - System.err.println("usage: TestKeyRange\n"); - System.exit(1); - } - - public static void main(String argv[]) - { - try - { - TestKeyRange app = new TestKeyRange(); - app.run(); - } - catch (DbException dbe) - { - System.err.println("TestKeyRange: " + dbe.toString()); - System.exit(1); - } - catch (FileNotFoundException fnfe) - { - System.err.println("TestKeyRange: " + fnfe.toString()); - System.exit(1); - } - System.exit(0); - } - - // Prompts for a line, and keeps prompting until a non blank - // line is returned. Returns null on error. - // - static public String askForLine(Reader reader, - PrintStream out, String prompt) - { - String result = ""; - while (result != null && result.length() == 0) { - out.print(prompt); - out.flush(); - result = getLine(reader); - } - return result; - } - - // Not terribly efficient, but does the job. - // Works for reading a line from stdin or a file. - // Returns null on EOF. If EOF appears in the middle - // of a line, returns that line, then null on next call. - // - static public String getLine(Reader reader) - { - StringBuffer b = new StringBuffer(); - int c; - try { - while ((c = reader.read()) != -1 && c != '\n') { - if (c != '\r') - b.append((char)c); - } - } - catch (IOException ioe) { - c = -1; - } - - if (c == -1 && b.length() == 0) - return null; - else - return b.toString(); - } - - public void run() - throws DbException, FileNotFoundException - { - // Remove the previous database. - new File(FileName).delete(); - - // Create the database object. - // There is no environment for this simple example. - Db table = new Db(null, 0); - table.set_error_stream(System.err); - table.set_errpfx("TestKeyRange"); - table.open(null, FileName, null, Db.DB_BTREE, Db.DB_CREATE, 0644); - - // - // Insert records into the database, where the key is the user - // input and the data is the user input in reverse order. - // - Reader reader = new StringReader("abc\nmiddle\nzend\nmoremiddle\nZED\nMAMAMIA"); - - int count= 0;/*ADDED*/ - for (;;) { - String line = askForLine(reader, System.out, "input>"); - if (line == null) - break; - - String reversed = (new StringBuffer(line)).reverse().toString(); - - // See definition of StringDbt below - // - StringDbt key = new StringDbt(line); - StringDbt data = new StringDbt(reversed); - - try - { - int err; - if ((err = table.put(null, key, data, 0)) == Db.DB_KEYEXIST) { - System.out.println("Key " + line + " already exists."); - } - } - catch (DbException dbe) - { - System.out.println(dbe.toString()); - } - System.out.println(""); - - /*START ADDED*/ - { - if (count++ > 0) { - DbKeyRange range = new DbKeyRange(); - table.key_range(null, key, range, 0); - System.out.println("less: " + range.less); - System.out.println("equal: " + range.equal); - System.out.println("greater: " + range.greater); - } - } - /*END ADDED*/ - - } - - // Acquire an iterator for the table. - Dbc iterator; - iterator = table.cursor(null, 0); - - // Walk through the table, printing the key/data pairs. - // See class StringDbt defined below. - // - StringDbt key = new StringDbt(); - StringDbt data = new StringDbt(); - while (iterator.get(key, data, Db.DB_NEXT) == 0) - { - System.out.println(key.getString() + " : " + data.getString()); - } - iterator.close(); - table.close(0); - } - - // Here's an example of how you can extend a Dbt in a straightforward - // way to allow easy storage/retrieval of strings, or whatever - // kind of data you wish. We've declared it as a static inner - // class, but it need not be. - // - static /*inner*/ - class StringDbt extends Dbt - { - StringDbt() - { - set_flags(Db.DB_DBT_MALLOC); // tell Db to allocate on retrieval - } - - StringDbt(String value) - { - setString(value); - set_flags(Db.DB_DBT_MALLOC); // tell Db to allocate on retrieval - } - - void setString(String value) - { - set_data(value.getBytes()); - set_size(value.length()); - } - - String getString() - { - return new String(get_data(), 0, get_size()); - } - } -} |