View Javadoc

1   // Do not edit this file!  It was generated by Melati POEM's DSD preprocessor.
2   
3   package org.paneris.bibliomania.generated;
4   
5   
6   import org.melati.poem.AccessPoemException;
7   import org.melati.poem.Column;
8   import org.melati.poem.Field;
9   import org.melati.poem.JdbcPersistent;
10  import org.melati.poem.NoSuchRowPoemException;
11  import org.melati.poem.ValidationPoemException;
12  import org.paneris.bibliomania.Author;
13  import org.paneris.bibliomania.BibliomaniaDatabaseTables;
14  import org.paneris.bibliomania.Book;
15  import org.paneris.bibliomania.Product;
16  import org.paneris.bibliomania.ProductAssociation;
17  import org.paneris.bibliomania.ProductAssociationTable;
18  
19  
20  /**
21   * Melati POEM generated abstract base class for a <code>Persistent</code> 
22   * <code>ProductAssociation</code> Object.
23   *
24   * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava 
25   */
26  public abstract class ProductAssociationBase extends JdbcPersistent {
27  
28  
29   /**
30    * Retrieves the Database object.
31    * 
32    * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava 
33    * @return the database
34    */
35    public BibliomaniaDatabaseTables getBibliomaniaDatabaseTables() {
36      return (BibliomaniaDatabaseTables)getDatabase();
37    }
38  
39  
40   /**
41    * Retrieves the  <code>ProductAssociationTable</code> table 
42    * which this <code>Persistent</code> is from.
43    * 
44    * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava 
45    * @return the ProductAssociationTable
46    */
47    @SuppressWarnings("unchecked")
48    public ProductAssociationTable<ProductAssociation> getProductAssociationTable() {
49      return (ProductAssociationTable<ProductAssociation>)getTable();
50    }
51  
52    @SuppressWarnings("unchecked")
53    private ProductAssociationTable<ProductAssociation> _getProductAssociationTable() {
54      return (ProductAssociationTable<ProductAssociation>)getTable();
55    }
56  
57    // Fields in this table 
58   /**
59    * id 
60    */
61    protected Integer id;
62   /**
63    * product - The related shop item 
64    */
65    protected Integer product;
66   /**
67    * book - The book this product is related to 
68    */
69    protected Integer book;
70   /**
71    * author - The author this product is related to 
72    */
73    protected Integer author;
74  
75  
76   /**
77    * Retrieves the <code>Id</code> value, without locking, 
78    * for this <code>ProductAssociation</code> <code>Persistent</code>.
79    *
80    * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
81    * @return the Integer id
82    */
83    public Integer getId_unsafe() {
84      return id;
85    }
86  
87  
88   /**
89    * Sets the <code>Id</code> value directly, without checking, 
90    * for this ProductAssociation <code>Persistent</code>.
91    * 
92    * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
93    * @param cooked  the pre-validated value to set
94    */
95    public void setId_unsafe(Integer cooked) {
96      id = cooked;
97    }
98  
99   /**
100   * Retrieves the Id value, with locking, for this 
101   * <code>ProductAssociation</code> <code>Persistent</code>.
102   * 
103   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
104   * @throws AccessPoemException 
105   *         if the current <code>AccessToken</code> 
106   *         does not confer write access rights 
107   * @return the value of the field <code>Id</code> for this 
108   *         <code>ProductAssociation</code> <code>Persistent</code>  
109   */
110 
111   public Integer getId()
112       throws AccessPoemException {
113     readLock();
114     return getId_unsafe();
115   }
116 
117 
118  /**
119   * Sets the <code>Id</code> value, with checking, for this 
120   * <code>ProductAssociation</code> <code>Persistent</code>.
121   * 
122   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
123   * @param cooked  a validated <code>int</code> 
124   * @throws AccessPoemException 
125   *         if the current <code>AccessToken</code> 
126   *         does not confer write access rights
127   * @throws ValidationPoemException 
128   *         if the value is not valid
129   */
130   public void setId(Integer cooked)
131       throws AccessPoemException, ValidationPoemException {
132     _getProductAssociationTable().getIdColumn().
133       getType().assertValidCooked(cooked);
134     writeLock();
135     setId_unsafe(cooked);
136   }
137 
138  /**
139   * Sets the <code>Id</code> value, with checking, for this 
140   * <code>ProductAssociation</code> <code>Persistent</code>.
141   * 
142   * Generated by org.melati.poem.prepro.IntegerFieldDef#generateBaseMethods 
143   * @param cooked  a validated <code>int</code>
144   * @throws AccessPoemException 
145   *         if the current <code>AccessToken</code> 
146   *         does not confer write access rights
147   * @throws ValidationPoemException 
148   *         if the value is not valid
149   */
150 
151   public final void setId(int cooked)
152       throws AccessPoemException, ValidationPoemException {
153     setId(new Integer(cooked));
154   }
155 
156 
157  /**
158   * Retrieves the <code>Id</code> value as a <code>Field</code>
159   * from this <code>ProductAssociation</code> <code>Persistent</code>.
160   * 
161   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
162   * @throws AccessPoemException 
163   *         if the current <code>AccessToken</code> 
164   *         does not confer write access rights
165   * @return the Integer id
166   */
167   public Field<Integer> getIdField() throws AccessPoemException {
168     Column<Integer> c = _getProductAssociationTable().getIdColumn();
169     return new Field<Integer>((Integer)c.getRaw(this), c);
170   }
171 
172 
173  /**
174   * Retrieves the <code>Product</code> value, without locking, 
175   * for this <code>ProductAssociation</code> <code>Persistent</code>.
176   *
177   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
178   * @return the Integer product
179   */
180   public Integer getProduct_unsafe() {
181     return product;
182   }
183 
184 
185  /**
186   * Sets the <code>Product</code> value directly, without checking, 
187   * for this ProductAssociation <code>Persistent</code>.
188   * 
189   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
190   * @param cooked  the pre-validated value to set
191   */
192   public void setProduct_unsafe(Integer cooked) {
193     product = cooked;
194   }
195 
196  /**
197   * Retrieves the Table Row Object ID. 
198   *
199   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
200   * @throws AccessPoemException  
201   *         if the current <code>AccessToken</code> 
202   *         does not confer read access rights 
203   * @return the TROID as an <code>Integer</code> 
204   */
205 
206   public Integer getProductTroid()
207       throws AccessPoemException {
208     readLock();
209     return getProduct_unsafe();
210   }
211 
212 
213  /**
214   * Sets the Table Row Object ID. 
215   * 
216   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
217   * @param raw  a Table Row Object Id 
218   * @throws AccessPoemException  
219   *         if the current <code>AccessToken</code> 
220   *         does not confer write access rights
221   */
222   public void setProductTroid(Integer raw)
223       throws AccessPoemException {
224     setProduct(raw == null ? null : 
225         getBibliomaniaDatabaseTables().getProductTable().getProductObject(raw));
226   }
227 
228 
229  /**
230   * Retrieves the <code>Product</code> object referred to.
231   *  
232   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
233   * @throws AccessPoemException  
234   *         if the current <code>AccessToken</code> 
235   *         does not confer read access rights 
236   * @throws NoSuchRowPoemException  
237   *         if the <code>Persistent</code> has yet to be allocated a TROID 
238   * @return the <code>Product</code> as a <code>Product</code> 
239   */
240   public Product getProduct()
241       throws AccessPoemException, NoSuchRowPoemException {
242     Integer troid = getProductTroid();
243     return troid == null ? null :
244         getBibliomaniaDatabaseTables().getProductTable().getProductObject(troid);
245   }
246 
247 
248  /**
249   * Set the Product.
250   * 
251   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
252   * @param cooked  a validated <code>Product</code>
253   * @throws AccessPoemException  
254   *         if the current <code>AccessToken</code> 
255   *         does not confer write access rights 
256   */
257   public void setProduct(Product cooked)
258       throws AccessPoemException {
259     _getProductAssociationTable().
260       getProductColumn().
261         getType().assertValidCooked(cooked);
262     writeLock();
263     if (cooked == null)
264       setProduct_unsafe(null);
265     else {
266       cooked.existenceLock();
267       setProduct_unsafe(cooked.troid());
268     }
269   }
270 
271 
272  /**
273   * Retrieves the <code>Product</code> value as a <code>Field</code>
274   * from this <code>ProductAssociation</code> <code>Persistent</code>.
275   * 
276   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
277   * @throws AccessPoemException 
278   *         if the current <code>AccessToken</code> 
279   *         does not confer write access rights
280   * @return the Integer product
281   */
282   public Field<Integer> getProductField() throws AccessPoemException {
283     Column<Integer> c = _getProductAssociationTable().getProductColumn();
284     return new Field<Integer>((Integer)c.getRaw(this), c);
285   }
286 
287 
288  /**
289   * Retrieves the <code>Book</code> value, without locking, 
290   * for this <code>ProductAssociation</code> <code>Persistent</code>.
291   *
292   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
293   * @return the Integer book
294   */
295   public Integer getBook_unsafe() {
296     return book;
297   }
298 
299 
300  /**
301   * Sets the <code>Book</code> value directly, without checking, 
302   * for this ProductAssociation <code>Persistent</code>.
303   * 
304   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
305   * @param cooked  the pre-validated value to set
306   */
307   public void setBook_unsafe(Integer cooked) {
308     book = cooked;
309   }
310 
311  /**
312   * Retrieves the Table Row Object ID. 
313   *
314   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
315   * @throws AccessPoemException  
316   *         if the current <code>AccessToken</code> 
317   *         does not confer read access rights 
318   * @return the TROID as an <code>Integer</code> 
319   */
320 
321   public Integer getBookTroid()
322       throws AccessPoemException {
323     readLock();
324     return getBook_unsafe();
325   }
326 
327 
328  /**
329   * Sets the Table Row Object ID. 
330   * 
331   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
332   * @param raw  a Table Row Object Id 
333   * @throws AccessPoemException  
334   *         if the current <code>AccessToken</code> 
335   *         does not confer write access rights
336   */
337   public void setBookTroid(Integer raw)
338       throws AccessPoemException {
339     setBook(raw == null ? null : 
340         (Book)getBibliomaniaDatabaseTables().getBookTable().getBookObject(raw));
341   }
342 
343 
344  /**
345   * Retrieves the <code>Book</code> object referred to.
346   *  
347   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
348   * @throws AccessPoemException  
349   *         if the current <code>AccessToken</code> 
350   *         does not confer read access rights 
351   * @throws NoSuchRowPoemException  
352   *         if the <code>Persistent</code> has yet to be allocated a TROID 
353   * @return the <code>Book</code> as a <code>Book</code> 
354   */
355   public Book getBook()
356       throws AccessPoemException, NoSuchRowPoemException {
357     Integer troid = getBookTroid();
358     return troid == null ? null :
359         (Book)getBibliomaniaDatabaseTables().getBookTable().getBookObject(troid);
360   }
361 
362 
363  /**
364   * Set the Book.
365   * 
366   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
367   * @param cooked  a validated <code>Book</code>
368   * @throws AccessPoemException  
369   *         if the current <code>AccessToken</code> 
370   *         does not confer write access rights 
371   */
372   public void setBook(Book cooked)
373       throws AccessPoemException {
374     _getProductAssociationTable().
375       getBookColumn().
376         getType().assertValidCooked(cooked);
377     writeLock();
378     if (cooked == null)
379       setBook_unsafe(null);
380     else {
381       cooked.existenceLock();
382       setBook_unsafe(cooked.troid());
383     }
384   }
385 
386 
387  /**
388   * Retrieves the <code>Book</code> value as a <code>Field</code>
389   * from this <code>ProductAssociation</code> <code>Persistent</code>.
390   * 
391   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
392   * @throws AccessPoemException 
393   *         if the current <code>AccessToken</code> 
394   *         does not confer write access rights
395   * @return the Integer book
396   */
397   public Field<Integer> getBookField() throws AccessPoemException {
398     Column<Integer> c = _getProductAssociationTable().getBookColumn();
399     return new Field<Integer>((Integer)c.getRaw(this), c);
400   }
401 
402 
403  /**
404   * Retrieves the <code>Author</code> value, without locking, 
405   * for this <code>ProductAssociation</code> <code>Persistent</code>.
406   *
407   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
408   * @return the Integer author
409   */
410   public Integer getAuthor_unsafe() {
411     return author;
412   }
413 
414 
415  /**
416   * Sets the <code>Author</code> value directly, without checking, 
417   * for this ProductAssociation <code>Persistent</code>.
418   * 
419   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
420   * @param cooked  the pre-validated value to set
421   */
422   public void setAuthor_unsafe(Integer cooked) {
423     author = cooked;
424   }
425 
426  /**
427   * Retrieves the Table Row Object ID. 
428   *
429   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
430   * @throws AccessPoemException  
431   *         if the current <code>AccessToken</code> 
432   *         does not confer read access rights 
433   * @return the TROID as an <code>Integer</code> 
434   */
435 
436   public Integer getAuthorTroid()
437       throws AccessPoemException {
438     readLock();
439     return getAuthor_unsafe();
440   }
441 
442 
443  /**
444   * Sets the Table Row Object ID. 
445   * 
446   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
447   * @param raw  a Table Row Object Id 
448   * @throws AccessPoemException  
449   *         if the current <code>AccessToken</code> 
450   *         does not confer write access rights
451   */
452   public void setAuthorTroid(Integer raw)
453       throws AccessPoemException {
454     setAuthor(raw == null ? null : 
455         (Author)getBibliomaniaDatabaseTables().getAuthorTable().getAuthorObject(raw));
456   }
457 
458 
459  /**
460   * Retrieves the <code>Author</code> object referred to.
461   *  
462   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
463   * @throws AccessPoemException  
464   *         if the current <code>AccessToken</code> 
465   *         does not confer read access rights 
466   * @throws NoSuchRowPoemException  
467   *         if the <code>Persistent</code> has yet to be allocated a TROID 
468   * @return the <code>Author</code> as a <code>Author</code> 
469   */
470   public Author getAuthor()
471       throws AccessPoemException, NoSuchRowPoemException {
472     Integer troid = getAuthorTroid();
473     return troid == null ? null :
474         (Author)getBibliomaniaDatabaseTables().getAuthorTable().getAuthorObject(troid);
475   }
476 
477 
478  /**
479   * Set the Author.
480   * 
481   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
482   * @param cooked  a validated <code>Author</code>
483   * @throws AccessPoemException  
484   *         if the current <code>AccessToken</code> 
485   *         does not confer write access rights 
486   */
487   public void setAuthor(Author cooked)
488       throws AccessPoemException {
489     _getProductAssociationTable().
490       getAuthorColumn().
491         getType().assertValidCooked(cooked);
492     writeLock();
493     if (cooked == null)
494       setAuthor_unsafe(null);
495     else {
496       cooked.existenceLock();
497       setAuthor_unsafe(cooked.troid());
498     }
499   }
500 
501 
502  /**
503   * Retrieves the <code>Author</code> value as a <code>Field</code>
504   * from this <code>ProductAssociation</code> <code>Persistent</code>.
505   * 
506   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
507   * @throws AccessPoemException 
508   *         if the current <code>AccessToken</code> 
509   *         does not confer write access rights
510   * @return the Integer author
511   */
512   public Field<Integer> getAuthorField() throws AccessPoemException {
513     Column<Integer> c = _getProductAssociationTable().getAuthorColumn();
514     return new Field<Integer>((Integer)c.getRaw(this), c);
515   }
516 
517 }
518