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