View Javadoc

1   package org.paneris.bibliomania;
2   
3   import java.sql.Timestamp;
4   import java.util.Enumeration;
5   import java.util.List;
6   import java.util.ArrayList;
7   import java.util.Iterator;
8   
9   import org.melati.poem.AccessPoemException;
10  import org.paneris.bibliomania.generated.ShopOrderBase;
11  
12  public class ShopOrder extends ShopOrderBase {
13    public ShopOrder() {}
14  
15    // programmer's domain-specific code here
16    
17    public BibliomaniaDatabase getBibliomaniaDatabase () {
18        return (BibliomaniaDatabase)getDatabase();
19    }
20  
21    public Enumeration getItems() {
22      return getBibliomaniaDatabase().getShopOrderItemTable().getOrderColumn().selectionWhereEq(troid());
23    }
24    
25   /**
26    * Get rid of any previously failed orders and purchases.
27    */
28    public void removeItems() {
29      if (troid() != null) {
30        List toRemove = new ArrayList();
31        for (Enumeration en = getItems(); en.hasMoreElements();) {
32          toRemove.add(en.nextElement());
33        } 
34        for (Iterator it = toRemove.iterator(); it.hasNext();) {
35          ShopOrderItem item = (ShopOrderItem) it.next();
36          item.deleteAndCommit();
37        }    
38     }
39   }
40    
41  
42   
43  
44    public void setStatus(OrderStatus cooked) throws AccessPoemException {
45      BibliomaniaDatabase db = (BibliomaniaDatabase)getDatabase();
46      if (getFufilleddate_unsafe() == null && 
47          cooked == db.getOrderStatusTable().getFufilled()) {
48        setFufilleddate_unsafe(now());
49      }      
50      super.setStatus(cooked);
51    }
52  
53    public void setFufilleddate_unsafe(Timestamp cooked) {
54      // avoid nulling it if the flag is set
55      BibliomaniaDatabase db = (BibliomaniaDatabase)getDatabase();
56      if (getStatus() != db.getOrderStatusTable().getFufilled() || cooked != null) {
57        super.setFufilleddate_unsafe(cooked);
58      }
59    }
60  
61    protected void writeLock() {
62      super.writeLock();
63      if (getDate_unsafe() == null) {
64        setDate_unsafe(now());
65      }
66    }
67    
68    private static java.sql.Timestamp now() {
69      return new java.sql.Timestamp(new java.util.Date().getTime());
70    }
71    
72  
73  }