View Javadoc

1   package org.paneris.bibliomania;
2   
3   import java.util.Enumeration;
4   
5   import org.paneris.bibliomania.generated.AuthorWebSiteTableBase;
6   import org.melati.poem.DefinitionSource;
7   import org.melati.poem.Database;
8   import org.melati.poem.Persistent;
9   import org.melati.poem.PoemException;
10  
11  /**
12   * Melati POEM generated, programmer modifiable stub 
13   * for a <code>AuthorWebSiteTable</code> object.
14   * <p>
15   * Description: 
16   *   A web site devoted to an author. 
17   * </p>
18   *
19   * 
20   * <table> 
21   * <tr><th colspan='3'>
22   * Field summary for SQL table <code>AuthorWebSite</code>
23   * </th></tr>
24   * <tr><th>Name</th><th>Type</th><th>Description</th></tr>
25   * <tr><td> id </td><td> Integer </td><td> &nbsp; </td></tr> 
26   * <tr><td> author </td><td> Author </td><td> The author to whom the site is 
27   * dedicated </td></tr> 
28   * <tr><td> url </td><td> String </td><td> The full URL for the site's front 
29   * page </td></tr> 
30   * <tr><td> displayname </td><td> String </td><td> The site's name </td></tr> 
31   * <tr><td> displayorder </td><td> Integer </td><td> &nbsp; </td></tr> 
32   * <tr><td> description </td><td> String </td><td> &nbsp; </td></tr> 
33   * </table> 
34   * 
35   * @see  org.melati.poem.prepro.TableDef#generateTableJava 
36   */
37  public class AuthorWebSiteTable<T extends AuthorWebSite> extends AuthorWebSiteTableBase<AuthorWebSite> {
38  
39   /**
40    * Constructor.
41    * 
42    * @see org.melati.poem.prepro.TableDef#generateTableJava 
43    * @param database          the POEM database we are using
44    * @param name              the name of this <code>Table</code>
45    * @param definitionSource  which definition is being used
46    * @throws PoemException    if anything goes wrong
47    */
48    public AuthorWebSiteTable(
49        Database database, String name,
50        DefinitionSource definitionSource) throws PoemException {
51      super(database, name, definitionSource);
52    }
53  
54    // programmer's domain-specific code here
55    
56    public AuthorWebSite ensure(Author a, String url, String name, String description) {
57      System.err.println("Entering Ensure for " + name);
58      
59      AuthorWebSite criteria = (AuthorWebSite)newPersistent();
60      criteria.setAuthor(a);
61      Enumeration<AuthorWebSite> existing = selection(criteria, "displayorder");
62      System.err.println("Got existing");
63      int order = 1;
64      while (existing.hasMoreElements()) { 
65        System.err.println("Order:" + order);
66        existing.nextElement();
67        order++;
68      }
69      criteria.setUrl(url);
70      criteria.setDisplayname(name);
71      criteria.setDescription(description);
72      
73      Enumeration<AuthorWebSite> some = selection(criteria);
74      if (some.hasMoreElements()) { 
75        return some.nextElement();
76      } else { 
77        criteria.setDisplayorder(order);
78        create(criteria);
79        return criteria;
80      }
81    }
82    
83    public void ensureStillValid() {
84      Enumeration them = selection();
85      while(them.hasMoreElements()) { 
86       ((AuthorWebSite)them.nextElement()).isStillLive(); 
87      }
88    }
89  }
90