package dbj.odmg; import COM.POET.odmg.*; import COM.POET.odmg.collection.*; import java.util.Properties; import java.util.Enumeration; import java.io.IOException; import java.io.FileInputStream; public class Deliver { Database dbase; public Deliver (Database db) { dbase = db; } public void tryToDeliver () throws ODMGException { BagOfObject orders; Transaction tx = new Transaction (); tx.begin (); try { orders = (BagOfObject) dbase.lookup ("orders"); Enumeration e = orders.elements (); System.out.println ("# of orders = " + orders.size ()); while (e.hasMoreElements ()) { BookOrder o = (BookOrder) e.nextElement (); System.out.println ("try to deliver: " + o); if (o.getStatus () == BookOrder.OPEN) { if (o.deliver ()) System.out.println ("delivered: " + o); } } } catch (ObjectNameNotFoundException e) { System.out.println ("fatal error: orders not found !"); tx.abort (); return; } catch (ODMGException exc) { tx.abort (); throw exc; } tx.commit (); } public static void main (String args[]) throws IOException { Properties props = new Properties (); props.load (new FileInputStream ("dbj.properties")); try { Database db = Database.open (props.getProperty ("odmg.database"), Database.openReadWrite); Deliver app = new Deliver (db); app.tryToDeliver (); } catch (Exception exc) { exc.printStackTrace (); } } }