1/*-
2 * See the file LICENSE for redistribution information.
3 *
4 * Copyright (c) 1997,2008 Oracle.  All rights reserved.
5 *
6 * $Id: SequenceExample.java,v 12.7 2008/01/08 20:58:32 bostic Exp $
7 */
8
9package db;
10
11import com.sleepycat.db.*;
12import java.io.File;
13import java.io.FileNotFoundException;
14import java.io.IOException;
15import java.io.PrintStream;
16
17class SequenceExample {
18    private static final int EXIT_SUCCESS = 0;
19    private static final int EXIT_FAILURE = 1;
20
21    public SequenceExample() {
22    }
23
24    public static void usage() {
25        System.out.println("usage: java " +
26               "db.SequenceExample [-r] [database]\n");
27        System.exit(EXIT_FAILURE);
28    }
29
30    public static void main(String[] argv) {
31        boolean removeExistingDatabase = false;
32        String databaseName = "access.db";
33
34        for (int i = 0; i < argv.length; i++) {
35            if (argv[i].equals("-r"))
36                removeExistingDatabase = true;
37            else if (argv[i].equals("-?"))
38                usage();
39            else if (argv[i].startsWith("-"))
40                usage();
41            else {
42                if ((argv.length - i) != 1)
43                    usage();
44                databaseName = argv[i];
45                break;
46            }
47        }
48
49        try {
50            SequenceExample app = new SequenceExample();
51            app.run(removeExistingDatabase, databaseName);
52        } catch (DatabaseException dbe) {
53            System.err.println("SequenceExample: " + dbe.toString());
54            System.exit(EXIT_FAILURE);
55        } catch (FileNotFoundException fnfe) {
56            System.err.println("SequenceExample: " + fnfe.toString());
57            System.exit(EXIT_FAILURE);
58        }
59        System.exit(EXIT_SUCCESS);
60    }
61
62    public void run(boolean removeExistingDatabase, String databaseName)
63        throws DatabaseException, FileNotFoundException {
64
65        // Remove the previous database.
66        if (removeExistingDatabase)
67            new File(databaseName).delete();
68
69        // Create the database object.
70        // There is no environment for this simple example.
71        DatabaseConfig dbConfig = new DatabaseConfig();
72        dbConfig.setErrorStream(System.err);
73        dbConfig.setErrorPrefix("SequenceExample");
74        dbConfig.setType(DatabaseType.BTREE);
75        dbConfig.setAllowCreate(true);
76        Database table = new Database(databaseName, null, dbConfig);
77
78        SequenceConfig config = new SequenceConfig();
79        config.setAllowCreate(true);
80        DatabaseEntry key =
81            new DatabaseEntry("my_sequence".getBytes());
82        Sequence sequence = table.openSequence(null, key, config);
83
84        for (int i = 0; i < 10; i++) {
85            long seqnum = sequence.get(null, 1);
86            System.out.println("Got sequence number: " + seqnum);
87        }
88
89        sequence.close();
90        table.close();
91    }
92}
93