View Javadoc

1   package org.melati.example.odmg;
2   
3   import org.odmg.Database;
4   import org.odmg.Transaction;
5   import org.odmg.DCollection;
6   import java.util.Iterator;
7   
8   /**
9    * A command line application to test the ODMG API.
10   *
11   */
12  
13  public final class OdmgTest {
14  
15    private OdmgTest() {}
16    
17    /**
18     * Test runner.
19     */
20    public static void main(String[] argsIn)
21      throws Exception {
22  
23      System.out.println("OdmgTest started:");
24  
25      Database db = org.melati.poem.odmg.ODMGFactory.getNewDatabase();
26      System.out.println("Got a db = "+db);
27  
28      db.open("odmgplaying",Database.OPEN_READ_WRITE);
29  
30      Transaction tx = org.melati.poem.odmg.ODMGFactory.getNewTransaction(db);
31      tx.begin();
32  
33      DCollection parents = (DCollection) db.lookup("parent");
34  
35      //clear out old crap
36      parents.removeAll(parents);
37  
38      System.out.println("ADDING PARENTS");
39      for (int i=0; i<10; i++) {
40        Parent p = newParent();
41        p.setName("parent-"+parents.size());
42        System.out.println("Adding parent: "+p.getName()); 
43        parents.add(p);
44      }
45  
46      System.out.println("PARENTS DESCENDING");
47      Iterator iter = parents.select("order by name desc");
48      while (iter.hasNext()) {
49        Parent p = (Parent)iter.next();
50        System.out.println("Parent:"+p.getName());
51      }
52  
53      System.out.println("PARENTS UNDER 5 ASCENDING");
54      iter = parents.select("where name<'parent-5' order by name asc");
55      while (iter.hasNext()) {
56        Parent p = (Parent)iter.next();
57        System.out.println("Parent:"+p.getName());
58      }
59  
60      System.out.println("PARENTS UNDER 3 NO SORTING");
61      iter = parents.select("name<'parent-3'");
62      while (iter.hasNext()) {
63        Parent p = (Parent)iter.next();
64        System.out.println("Parent:"+p.getName());
65      }
66  
67      System.out.println("PARENTS UNDER 2 WITH WHERE KEYWORD NO SORTING");
68      iter = parents.select("where name<'parent-2'");
69      while (iter.hasNext()) {
70        Parent p = (Parent)iter.next();
71        System.out.println("Parent:"+p.getName());
72      }
73  
74      System.out.println("ALL PARENTS NO SORTING");
75      iter = parents.select("");
76      while (iter.hasNext()) {
77        Parent p = (Parent)iter.next();
78        System.out.println("Parent:"+p.getName());
79      }
80  
81      tx.commit();
82      
83      System.out.println("OdmgTest done:");
84    }
85  
86    private static Parent newParent()
87      throws Exception {
88      return (Parent)org.melati.poem.odmg.ODMGFactory.
89                         getPoemDatabase().getTable("parent").newPersistent();
90    }
91  
92  }