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 java.util.Collections;
7   import java.util.Enumeration;
8   import java.util.List;
9   import org.melati.poem.AccessPoemException;
10  import org.melati.poem.CachedSelection;
11  import org.melati.poem.Column;
12  import org.melati.poem.Field;
13  import org.melati.poem.NoSuchRowPoemException;
14  import org.melati.poem.ValidationPoemException;
15  import org.melati.poem.util.EmptyEnumeration;
16  import org.paneris.bibliomania.Advert;
17  import org.paneris.bibliomania.Author;
18  import org.paneris.bibliomania.AuthorTable;
19  import org.paneris.bibliomania.AuthorWebSite;
20  import org.paneris.bibliomania.BibliomaniaDatabaseTables;
21  import org.paneris.bibliomania.ProductAssociation;
22  import org.paneris.bibliomania.Section;
23  import org.paneris.bibliomania.Unit;
24  
25  
26  /**
27   * Melati POEM generated abstract base class for a <code>Persistent</code> 
28   * <code>Author</code> Object.
29   *
30   * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava 
31   */
32  public abstract class AuthorBase extends Unit {
33  
34  
35   /**
36    * Retrieves the Database object.
37    * 
38    * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava 
39    * @return the database
40    */
41    public BibliomaniaDatabaseTables getBibliomaniaDatabaseTables() {
42      return (BibliomaniaDatabaseTables)getDatabase();
43    }
44  
45  
46   /**
47    * Retrieves the  <code>AuthorTable</code> table 
48    * which this <code>Persistent</code> is from.
49    * 
50    * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava 
51    * @return the AuthorTable
52    */
53    @SuppressWarnings("unchecked")
54    public AuthorTable<Author> getAuthorTable() {
55      return (AuthorTable<Author>)getTable();
56    }
57  
58    @SuppressWarnings("unchecked")
59    private AuthorTable<Author> _getAuthorTable() {
60      return (AuthorTable<Author>)getTable();
61    }
62  
63    // Fields in this table 
64   /**
65    * id 
66    */
67    protected Integer id;
68   /**
69    * Short name - The author's full name in short form (`Yule and Burnell') 
70    */
71    protected String displayname;
72   /**
73    * Long name - The author's full name in long form (`Col Henry Yule and A. 
74    * C. Burnell'), if different 
75    */
76    protected String longnameifdifferent;
77   /**
78    * sortname - A name by which the author should be sorted (`Fenimore Cooper, 
79    * James') 
80    */
81    protected String sortname;
82   /**
83    * section 
84    */
85    protected Integer section;
86   /**
87    * advert - Advert for this author 
88    */
89    protected Integer advert;
90   /**
91    * metatag_description 
92    */
93    protected String metatag_description;
94   /**
95    * metatag_keywords 
96    */
97    protected String metatag_keywords;
98   /**
99    * Image file name - The name, within the book directory, of an image of the 
100   * author 
101   */
102   protected String imagefilename;
103  /**
104   * blurb - A short blurb to go next to the author image 
105   */
106   protected String blurb;
107  /**
108   * biography - A biography for the author 
109   */
110   protected String biography;
111  /**
112   * nonstandard - If set then Author.wm is not used, any .wm files in the 
113   * directory, such as index.wm, are used. 
114   */
115   protected Boolean nonstandard;
116 
117 
118  /**
119   * Retrieves the <code>Id</code> value, without locking, 
120   * for this <code>Author</code> <code>Persistent</code>.
121   *
122   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
123   * @return the Integer id
124   */
125   public Integer getId_unsafe() {
126     return id;
127   }
128 
129 
130  /**
131   * Sets the <code>Id</code> value directly, without checking, 
132   * for this Author <code>Persistent</code>.
133   * 
134   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
135   * @param cooked  the pre-validated value to set
136   */
137   public void setId_unsafe(Integer cooked) {
138     id = cooked;
139   }
140 
141  /**
142   * Retrieves the Id value, with locking, for this 
143   * <code>Author</code> <code>Persistent</code>.
144   * 
145   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
146   * @throws AccessPoemException 
147   *         if the current <code>AccessToken</code> 
148   *         does not confer write access rights 
149   * @return the value of the field <code>Id</code> for this 
150   *         <code>Author</code> <code>Persistent</code>  
151   */
152 
153   public Integer getId()
154       throws AccessPoemException {
155     readLock();
156     return getId_unsafe();
157   }
158 
159 
160  /**
161   * Sets the <code>Id</code> value, with checking, for this 
162   * <code>Author</code> <code>Persistent</code>.
163   * 
164   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
165   * @param cooked  a validated <code>int</code> 
166   * @throws AccessPoemException 
167   *         if the current <code>AccessToken</code> 
168   *         does not confer write access rights
169   * @throws ValidationPoemException 
170   *         if the value is not valid
171   */
172   public void setId(Integer cooked)
173       throws AccessPoemException, ValidationPoemException {
174     _getAuthorTable().getIdColumn().
175       getType().assertValidCooked(cooked);
176     writeLock();
177     setId_unsafe(cooked);
178   }
179 
180  /**
181   * Sets the <code>Id</code> value, with checking, for this 
182   * <code>Author</code> <code>Persistent</code>.
183   * 
184   * Generated by org.melati.poem.prepro.IntegerFieldDef#generateBaseMethods 
185   * @param cooked  a validated <code>int</code>
186   * @throws AccessPoemException 
187   *         if the current <code>AccessToken</code> 
188   *         does not confer write access rights
189   * @throws ValidationPoemException 
190   *         if the value is not valid
191   */
192 
193   public final void setId(int cooked)
194       throws AccessPoemException, ValidationPoemException {
195     setId(new Integer(cooked));
196   }
197 
198 
199  /**
200   * Retrieves the <code>Id</code> value as a <code>Field</code>
201   * from this <code>Author</code> <code>Persistent</code>.
202   * 
203   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
204   * @throws AccessPoemException 
205   *         if the current <code>AccessToken</code> 
206   *         does not confer write access rights
207   * @return the Integer id
208   */
209   public Field<Integer> getIdField() throws AccessPoemException {
210     Column<Integer> c = _getAuthorTable().getIdColumn();
211     return new Field<Integer>((Integer)c.getRaw(this), c);
212   }
213 
214 
215  /**
216   * Retrieves the <code>Displayname</code> value, without locking, 
217   * for this <code>Author</code> <code>Persistent</code>.
218   *
219   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
220   * @return the String displayname
221   */
222   public String getDisplayname_unsafe() {
223     return displayname;
224   }
225 
226 
227  /**
228   * Sets the <code>Displayname</code> value directly, without checking, 
229   * for this Author <code>Persistent</code>.
230   * 
231   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
232   * @param cooked  the pre-validated value to set
233   */
234   public void setDisplayname_unsafe(String cooked) {
235     displayname = cooked;
236   }
237 
238  /**
239   * Retrieves the Displayname value, with locking, for this 
240   * <code>Author</code> <code>Persistent</code>.
241   * Field description: 
242   *   The author's full name in short form (`Yule and Burnell') 
243   * 
244   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
245   * @throws AccessPoemException 
246   *         if the current <code>AccessToken</code> 
247   *         does not confer write access rights 
248   * @return the value of the field <code>Displayname</code> for this 
249   *         <code>Author</code> <code>Persistent</code>  
250   */
251 
252   public String getDisplayname()
253       throws AccessPoemException {
254     readLock();
255     return getDisplayname_unsafe();
256   }
257 
258 
259  /**
260   * Sets the <code>Displayname</code> value, with checking, for this 
261   * <code>Author</code> <code>Persistent</code>.
262   * Field description: 
263   *   The author's full name in short form (`Yule and Burnell') 
264   * 
265   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
266   * @param cooked  a validated <code>int</code> 
267   * @throws AccessPoemException 
268   *         if the current <code>AccessToken</code> 
269   *         does not confer write access rights
270   * @throws ValidationPoemException 
271   *         if the value is not valid
272   */
273   public void setDisplayname(String cooked)
274       throws AccessPoemException, ValidationPoemException {
275     _getAuthorTable().getDisplaynameColumn().
276       getType().assertValidCooked(cooked);
277     writeLock();
278     setDisplayname_unsafe(cooked);
279   }
280 
281 
282  /**
283   * Retrieves the <code>Displayname</code> value as a <code>Field</code>
284   * from this <code>Author</code> <code>Persistent</code>.
285   * 
286   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
287   * @throws AccessPoemException 
288   *         if the current <code>AccessToken</code> 
289   *         does not confer write access rights
290   * @return the String displayname
291   */
292   public Field<String> getDisplaynameField() throws AccessPoemException {
293     Column<String> c = _getAuthorTable().getDisplaynameColumn();
294     return new Field<String>((String)c.getRaw(this), c);
295   }
296 
297 
298  /**
299   * Retrieves the <code>Longnameifdifferent</code> value, without locking, 
300   * for this <code>Author</code> <code>Persistent</code>.
301   *
302   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
303   * @return the String longnameifdifferent
304   */
305   public String getLongnameifdifferent_unsafe() {
306     return longnameifdifferent;
307   }
308 
309 
310  /**
311   * Sets the <code>Longnameifdifferent</code> value directly, without checking, 
312   * for this Author <code>Persistent</code>.
313   * 
314   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
315   * @param cooked  the pre-validated value to set
316   */
317   public void setLongnameifdifferent_unsafe(String cooked) {
318     longnameifdifferent = cooked;
319   }
320 
321  /**
322   * Retrieves the Longnameifdifferent value, with locking, for this 
323   * <code>Author</code> <code>Persistent</code>.
324   * Field description: 
325   *   The author's full name in long form (`Col Henry Yule and A. C. 
326   *   Burnell'), if different 
327   * 
328   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
329   * @throws AccessPoemException 
330   *         if the current <code>AccessToken</code> 
331   *         does not confer write access rights 
332   * @return the value of the field <code>Longnameifdifferent</code> for this 
333   *         <code>Author</code> <code>Persistent</code>  
334   */
335 
336   public String getLongnameifdifferent()
337       throws AccessPoemException {
338     readLock();
339     return getLongnameifdifferent_unsafe();
340   }
341 
342 
343  /**
344   * Sets the <code>Longnameifdifferent</code> value, with checking, for this 
345   * <code>Author</code> <code>Persistent</code>.
346   * Field description: 
347   *   The author's full name in long form (`Col Henry Yule and A. C. 
348   *   Burnell'), if different 
349   * 
350   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
351   * @param cooked  a validated <code>int</code> 
352   * @throws AccessPoemException 
353   *         if the current <code>AccessToken</code> 
354   *         does not confer write access rights
355   * @throws ValidationPoemException 
356   *         if the value is not valid
357   */
358   public void setLongnameifdifferent(String cooked)
359       throws AccessPoemException, ValidationPoemException {
360     _getAuthorTable().getLongnameifdifferentColumn().
361       getType().assertValidCooked(cooked);
362     writeLock();
363     setLongnameifdifferent_unsafe(cooked);
364   }
365 
366 
367  /**
368   * Retrieves the <code>Longnameifdifferent</code> value as a <code>Field</code>
369   * from this <code>Author</code> <code>Persistent</code>.
370   * 
371   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
372   * @throws AccessPoemException 
373   *         if the current <code>AccessToken</code> 
374   *         does not confer write access rights
375   * @return the String longnameifdifferent
376   */
377   public Field<String> getLongnameifdifferentField() throws AccessPoemException {
378     Column<String> c = _getAuthorTable().getLongnameifdifferentColumn();
379     return new Field<String>((String)c.getRaw(this), c);
380   }
381 
382 
383  /**
384   * Retrieves the <code>Sortname</code> value, without locking, 
385   * for this <code>Author</code> <code>Persistent</code>.
386   *
387   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
388   * @return the String sortname
389   */
390   public String getSortname_unsafe() {
391     return sortname;
392   }
393 
394 
395  /**
396   * Sets the <code>Sortname</code> value directly, without checking, 
397   * for this Author <code>Persistent</code>.
398   * 
399   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
400   * @param cooked  the pre-validated value to set
401   */
402   public void setSortname_unsafe(String cooked) {
403     sortname = cooked;
404   }
405 
406  /**
407   * Retrieves the Sortname value, with locking, for this 
408   * <code>Author</code> <code>Persistent</code>.
409   * Field description: 
410   *   A name by which the author should be sorted (`Fenimore Cooper, James') 
411   * 
412   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
413   * @throws AccessPoemException 
414   *         if the current <code>AccessToken</code> 
415   *         does not confer write access rights 
416   * @return the value of the field <code>Sortname</code> for this 
417   *         <code>Author</code> <code>Persistent</code>  
418   */
419 
420   public String getSortname()
421       throws AccessPoemException {
422     readLock();
423     return getSortname_unsafe();
424   }
425 
426 
427  /**
428   * Sets the <code>Sortname</code> value, with checking, for this 
429   * <code>Author</code> <code>Persistent</code>.
430   * Field description: 
431   *   A name by which the author should be sorted (`Fenimore Cooper, James') 
432   * 
433   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
434   * @param cooked  a validated <code>int</code> 
435   * @throws AccessPoemException 
436   *         if the current <code>AccessToken</code> 
437   *         does not confer write access rights
438   * @throws ValidationPoemException 
439   *         if the value is not valid
440   */
441   public void setSortname(String cooked)
442       throws AccessPoemException, ValidationPoemException {
443     _getAuthorTable().getSortnameColumn().
444       getType().assertValidCooked(cooked);
445     writeLock();
446     setSortname_unsafe(cooked);
447   }
448 
449 
450  /**
451   * Retrieves the <code>Sortname</code> value as a <code>Field</code>
452   * from this <code>Author</code> <code>Persistent</code>.
453   * 
454   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
455   * @throws AccessPoemException 
456   *         if the current <code>AccessToken</code> 
457   *         does not confer write access rights
458   * @return the String sortname
459   */
460   public Field<String> getSortnameField() throws AccessPoemException {
461     Column<String> c = _getAuthorTable().getSortnameColumn();
462     return new Field<String>((String)c.getRaw(this), c);
463   }
464 
465 
466  /**
467   * Retrieves the <code>Section</code> value, without locking, 
468   * for this <code>Author</code> <code>Persistent</code>.
469   *
470   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
471   * @return the Integer section
472   */
473   public Integer getSection_unsafe() {
474     return section;
475   }
476 
477 
478  /**
479   * Sets the <code>Section</code> value directly, without checking, 
480   * for this Author <code>Persistent</code>.
481   * 
482   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
483   * @param cooked  the pre-validated value to set
484   */
485   public void setSection_unsafe(Integer cooked) {
486     section = cooked;
487   }
488 
489  /**
490   * Retrieves the Table Row Object ID. 
491   *
492   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
493   * @throws AccessPoemException  
494   *         if the current <code>AccessToken</code> 
495   *         does not confer read access rights 
496   * @return the TROID as an <code>Integer</code> 
497   */
498 
499   public Integer getSectionTroid()
500       throws AccessPoemException {
501     readLock();
502     return getSection_unsafe();
503   }
504 
505 
506  /**
507   * Sets the Table Row Object ID. 
508   * 
509   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
510   * @param raw  a Table Row Object Id 
511   * @throws AccessPoemException  
512   *         if the current <code>AccessToken</code> 
513   *         does not confer write access rights
514   */
515   public void setSectionTroid(Integer raw)
516       throws AccessPoemException {
517     setSection(raw == null ? null : 
518         (Section)getBibliomaniaDatabaseTables().getSectionTable().getSectionObject(raw));
519   }
520 
521 
522  /**
523   * Retrieves the <code>Section</code> object referred to.
524   *  
525   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
526   * @throws AccessPoemException  
527   *         if the current <code>AccessToken</code> 
528   *         does not confer read access rights 
529   * @throws NoSuchRowPoemException  
530   *         if the <code>Persistent</code> has yet to be allocated a TROID 
531   * @return the <code>Section</code> as a <code>Section</code> 
532   */
533   public Section getSection()
534       throws AccessPoemException, NoSuchRowPoemException {
535     Integer troid = getSectionTroid();
536     return troid == null ? null :
537         (Section)getBibliomaniaDatabaseTables().getSectionTable().getSectionObject(troid);
538   }
539 
540 
541  /**
542   * Set the Section.
543   * 
544   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
545   * @param cooked  a validated <code>Section</code>
546   * @throws AccessPoemException  
547   *         if the current <code>AccessToken</code> 
548   *         does not confer write access rights 
549   */
550   public void setSection(Section cooked)
551       throws AccessPoemException {
552     _getAuthorTable().
553       getSectionColumn().
554         getType().assertValidCooked(cooked);
555     writeLock();
556     if (cooked == null)
557       setSection_unsafe(null);
558     else {
559       cooked.existenceLock();
560       setSection_unsafe(cooked.troid());
561     }
562   }
563 
564 
565  /**
566   * Retrieves the <code>Section</code> value as a <code>Field</code>
567   * from this <code>Author</code> <code>Persistent</code>.
568   * 
569   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
570   * @throws AccessPoemException 
571   *         if the current <code>AccessToken</code> 
572   *         does not confer write access rights
573   * @return the Integer section
574   */
575   public Field<Integer> getSectionField() throws AccessPoemException {
576     Column<Integer> c = _getAuthorTable().getSectionColumn();
577     return new Field<Integer>((Integer)c.getRaw(this), c);
578   }
579 
580 
581  /**
582   * Retrieves the <code>Advert</code> value, without locking, 
583   * for this <code>Author</code> <code>Persistent</code>.
584   *
585   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
586   * @return the Integer advert
587   */
588   public Integer getAdvert_unsafe() {
589     return advert;
590   }
591 
592 
593  /**
594   * Sets the <code>Advert</code> value directly, without checking, 
595   * for this Author <code>Persistent</code>.
596   * 
597   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
598   * @param cooked  the pre-validated value to set
599   */
600   public void setAdvert_unsafe(Integer cooked) {
601     advert = cooked;
602   }
603 
604  /**
605   * Retrieves the Table Row Object ID. 
606   *
607   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
608   * @throws AccessPoemException  
609   *         if the current <code>AccessToken</code> 
610   *         does not confer read access rights 
611   * @return the TROID as an <code>Integer</code> 
612   */
613 
614   public Integer getAdvertTroid()
615       throws AccessPoemException {
616     readLock();
617     return getAdvert_unsafe();
618   }
619 
620 
621  /**
622   * Sets the Table Row Object ID. 
623   * 
624   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
625   * @param raw  a Table Row Object Id 
626   * @throws AccessPoemException  
627   *         if the current <code>AccessToken</code> 
628   *         does not confer write access rights
629   */
630   public void setAdvertTroid(Integer raw)
631       throws AccessPoemException {
632     setAdvert(raw == null ? null : 
633         getBibliomaniaDatabaseTables().getAdvertTable().getAdvertObject(raw));
634   }
635 
636 
637  /**
638   * Retrieves the <code>Advert</code> object referred to.
639   *  
640   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
641   * @throws AccessPoemException  
642   *         if the current <code>AccessToken</code> 
643   *         does not confer read access rights 
644   * @throws NoSuchRowPoemException  
645   *         if the <code>Persistent</code> has yet to be allocated a TROID 
646   * @return the <code>Advert</code> as a <code>Advert</code> 
647   */
648   public Advert getAdvert()
649       throws AccessPoemException, NoSuchRowPoemException {
650     Integer troid = getAdvertTroid();
651     return troid == null ? null :
652         getBibliomaniaDatabaseTables().getAdvertTable().getAdvertObject(troid);
653   }
654 
655 
656  /**
657   * Set the Advert.
658   * 
659   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
660   * @param cooked  a validated <code>Advert</code>
661   * @throws AccessPoemException  
662   *         if the current <code>AccessToken</code> 
663   *         does not confer write access rights 
664   */
665   public void setAdvert(Advert cooked)
666       throws AccessPoemException {
667     _getAuthorTable().
668       getAdvertColumn().
669         getType().assertValidCooked(cooked);
670     writeLock();
671     if (cooked == null)
672       setAdvert_unsafe(null);
673     else {
674       cooked.existenceLock();
675       setAdvert_unsafe(cooked.troid());
676     }
677   }
678 
679 
680  /**
681   * Retrieves the <code>Advert</code> value as a <code>Field</code>
682   * from this <code>Author</code> <code>Persistent</code>.
683   * 
684   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
685   * @throws AccessPoemException 
686   *         if the current <code>AccessToken</code> 
687   *         does not confer write access rights
688   * @return the Integer advert
689   */
690   public Field<Integer> getAdvertField() throws AccessPoemException {
691     Column<Integer> c = _getAuthorTable().getAdvertColumn();
692     return new Field<Integer>((Integer)c.getRaw(this), c);
693   }
694 
695 
696  /**
697   * Retrieves the <code>Metatag_description</code> value, without locking, 
698   * for this <code>Author</code> <code>Persistent</code>.
699   *
700   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
701   * @return the String metatag_description
702   */
703   public String getMetatag_description_unsafe() {
704     return metatag_description;
705   }
706 
707 
708  /**
709   * Sets the <code>Metatag_description</code> value directly, without checking, 
710   * for this Author <code>Persistent</code>.
711   * 
712   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
713   * @param cooked  the pre-validated value to set
714   */
715   public void setMetatag_description_unsafe(String cooked) {
716     metatag_description = cooked;
717   }
718 
719  /**
720   * Retrieves the Metatag_description value, with locking, for this 
721   * <code>Author</code> <code>Persistent</code>.
722   * 
723   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
724   * @throws AccessPoemException 
725   *         if the current <code>AccessToken</code> 
726   *         does not confer write access rights 
727   * @return the value of the field <code>Metatag_description</code> for this 
728   *         <code>Author</code> <code>Persistent</code>  
729   */
730 
731   public String getMetatag_description()
732       throws AccessPoemException {
733     readLock();
734     return getMetatag_description_unsafe();
735   }
736 
737 
738  /**
739   * Sets the <code>Metatag_description</code> value, with checking, for this 
740   * <code>Author</code> <code>Persistent</code>.
741   * 
742   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
743   * @param cooked  a validated <code>int</code> 
744   * @throws AccessPoemException 
745   *         if the current <code>AccessToken</code> 
746   *         does not confer write access rights
747   * @throws ValidationPoemException 
748   *         if the value is not valid
749   */
750   public void setMetatag_description(String cooked)
751       throws AccessPoemException, ValidationPoemException {
752     _getAuthorTable().getMetatag_descriptionColumn().
753       getType().assertValidCooked(cooked);
754     writeLock();
755     setMetatag_description_unsafe(cooked);
756   }
757 
758 
759  /**
760   * Retrieves the <code>Metatag_description</code> value as a <code>Field</code>
761   * from this <code>Author</code> <code>Persistent</code>.
762   * 
763   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
764   * @throws AccessPoemException 
765   *         if the current <code>AccessToken</code> 
766   *         does not confer write access rights
767   * @return the String metatag_description
768   */
769   public Field<String> getMetatag_descriptionField() throws AccessPoemException {
770     Column<String> c = _getAuthorTable().getMetatag_descriptionColumn();
771     return new Field<String>((String)c.getRaw(this), c);
772   }
773 
774 
775  /**
776   * Retrieves the <code>Metatag_keywords</code> value, without locking, 
777   * for this <code>Author</code> <code>Persistent</code>.
778   *
779   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
780   * @return the String metatag_keywords
781   */
782   public String getMetatag_keywords_unsafe() {
783     return metatag_keywords;
784   }
785 
786 
787  /**
788   * Sets the <code>Metatag_keywords</code> value directly, without checking, 
789   * for this Author <code>Persistent</code>.
790   * 
791   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
792   * @param cooked  the pre-validated value to set
793   */
794   public void setMetatag_keywords_unsafe(String cooked) {
795     metatag_keywords = cooked;
796   }
797 
798  /**
799   * Retrieves the Metatag_keywords value, with locking, for this 
800   * <code>Author</code> <code>Persistent</code>.
801   * 
802   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
803   * @throws AccessPoemException 
804   *         if the current <code>AccessToken</code> 
805   *         does not confer write access rights 
806   * @return the value of the field <code>Metatag_keywords</code> for this 
807   *         <code>Author</code> <code>Persistent</code>  
808   */
809 
810   public String getMetatag_keywords()
811       throws AccessPoemException {
812     readLock();
813     return getMetatag_keywords_unsafe();
814   }
815 
816 
817  /**
818   * Sets the <code>Metatag_keywords</code> value, with checking, for this 
819   * <code>Author</code> <code>Persistent</code>.
820   * 
821   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
822   * @param cooked  a validated <code>int</code> 
823   * @throws AccessPoemException 
824   *         if the current <code>AccessToken</code> 
825   *         does not confer write access rights
826   * @throws ValidationPoemException 
827   *         if the value is not valid
828   */
829   public void setMetatag_keywords(String cooked)
830       throws AccessPoemException, ValidationPoemException {
831     _getAuthorTable().getMetatag_keywordsColumn().
832       getType().assertValidCooked(cooked);
833     writeLock();
834     setMetatag_keywords_unsafe(cooked);
835   }
836 
837 
838  /**
839   * Retrieves the <code>Metatag_keywords</code> value as a <code>Field</code>
840   * from this <code>Author</code> <code>Persistent</code>.
841   * 
842   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
843   * @throws AccessPoemException 
844   *         if the current <code>AccessToken</code> 
845   *         does not confer write access rights
846   * @return the String metatag_keywords
847   */
848   public Field<String> getMetatag_keywordsField() throws AccessPoemException {
849     Column<String> c = _getAuthorTable().getMetatag_keywordsColumn();
850     return new Field<String>((String)c.getRaw(this), c);
851   }
852 
853 
854  /**
855   * Retrieves the <code>Imagefilename</code> value, without locking, 
856   * for this <code>Author</code> <code>Persistent</code>.
857   *
858   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
859   * @return the String imagefilename
860   */
861   public String getImagefilename_unsafe() {
862     return imagefilename;
863   }
864 
865 
866  /**
867   * Sets the <code>Imagefilename</code> value directly, without checking, 
868   * for this Author <code>Persistent</code>.
869   * 
870   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
871   * @param cooked  the pre-validated value to set
872   */
873   public void setImagefilename_unsafe(String cooked) {
874     imagefilename = cooked;
875   }
876 
877  /**
878   * Retrieves the Imagefilename value, with locking, for this 
879   * <code>Author</code> <code>Persistent</code>.
880   * Field description: 
881   *   The name, within the book directory, of an image of the author 
882   * 
883   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
884   * @throws AccessPoemException 
885   *         if the current <code>AccessToken</code> 
886   *         does not confer write access rights 
887   * @return the value of the field <code>Imagefilename</code> for this 
888   *         <code>Author</code> <code>Persistent</code>  
889   */
890 
891   public String getImagefilename()
892       throws AccessPoemException {
893     readLock();
894     return getImagefilename_unsafe();
895   }
896 
897 
898  /**
899   * Sets the <code>Imagefilename</code> value, with checking, for this 
900   * <code>Author</code> <code>Persistent</code>.
901   * Field description: 
902   *   The name, within the book directory, of an image of the author 
903   * 
904   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
905   * @param cooked  a validated <code>int</code> 
906   * @throws AccessPoemException 
907   *         if the current <code>AccessToken</code> 
908   *         does not confer write access rights
909   * @throws ValidationPoemException 
910   *         if the value is not valid
911   */
912   public void setImagefilename(String cooked)
913       throws AccessPoemException, ValidationPoemException {
914     _getAuthorTable().getImagefilenameColumn().
915       getType().assertValidCooked(cooked);
916     writeLock();
917     setImagefilename_unsafe(cooked);
918   }
919 
920 
921  /**
922   * Retrieves the <code>Imagefilename</code> value as a <code>Field</code>
923   * from this <code>Author</code> <code>Persistent</code>.
924   * 
925   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
926   * @throws AccessPoemException 
927   *         if the current <code>AccessToken</code> 
928   *         does not confer write access rights
929   * @return the String imagefilename
930   */
931   public Field<String> getImagefilenameField() throws AccessPoemException {
932     Column<String> c = _getAuthorTable().getImagefilenameColumn();
933     return new Field<String>((String)c.getRaw(this), c);
934   }
935 
936 
937  /**
938   * Retrieves the <code>Blurb</code> value, without locking, 
939   * for this <code>Author</code> <code>Persistent</code>.
940   *
941   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
942   * @return the String blurb
943   */
944   public String getBlurb_unsafe() {
945     return blurb;
946   }
947 
948 
949  /**
950   * Sets the <code>Blurb</code> value directly, without checking, 
951   * for this Author <code>Persistent</code>.
952   * 
953   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
954   * @param cooked  the pre-validated value to set
955   */
956   public void setBlurb_unsafe(String cooked) {
957     blurb = cooked;
958   }
959 
960  /**
961   * Retrieves the Blurb value, with locking, for this 
962   * <code>Author</code> <code>Persistent</code>.
963   * Field description: 
964   *   A short blurb to go next to the author image 
965   * 
966   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
967   * @throws AccessPoemException 
968   *         if the current <code>AccessToken</code> 
969   *         does not confer write access rights 
970   * @return the value of the field <code>Blurb</code> for this 
971   *         <code>Author</code> <code>Persistent</code>  
972   */
973 
974   public String getBlurb()
975       throws AccessPoemException {
976     readLock();
977     return getBlurb_unsafe();
978   }
979 
980 
981  /**
982   * Sets the <code>Blurb</code> value, with checking, for this 
983   * <code>Author</code> <code>Persistent</code>.
984   * Field description: 
985   *   A short blurb to go next to the author image 
986   * 
987   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
988   * @param cooked  a validated <code>int</code> 
989   * @throws AccessPoemException 
990   *         if the current <code>AccessToken</code> 
991   *         does not confer write access rights
992   * @throws ValidationPoemException 
993   *         if the value is not valid
994   */
995   public void setBlurb(String cooked)
996       throws AccessPoemException, ValidationPoemException {
997     _getAuthorTable().getBlurbColumn().
998       getType().assertValidCooked(cooked);
999     writeLock();
1000     setBlurb_unsafe(cooked);
1001   }
1002 
1003 
1004  /**
1005   * Retrieves the <code>Blurb</code> value as a <code>Field</code>
1006   * from this <code>Author</code> <code>Persistent</code>.
1007   * 
1008   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
1009   * @throws AccessPoemException 
1010   *         if the current <code>AccessToken</code> 
1011   *         does not confer write access rights
1012   * @return the String blurb
1013   */
1014   public Field<String> getBlurbField() throws AccessPoemException {
1015     Column<String> c = _getAuthorTable().getBlurbColumn();
1016     return new Field<String>((String)c.getRaw(this), c);
1017   }
1018 
1019 
1020  /**
1021   * Retrieves the <code>Biography</code> value, without locking, 
1022   * for this <code>Author</code> <code>Persistent</code>.
1023   *
1024   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
1025   * @return the String biography
1026   */
1027   public String getBiography_unsafe() {
1028     return biography;
1029   }
1030 
1031 
1032  /**
1033   * Sets the <code>Biography</code> value directly, without checking, 
1034   * for this Author <code>Persistent</code>.
1035   * 
1036   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
1037   * @param cooked  the pre-validated value to set
1038   */
1039   public void setBiography_unsafe(String cooked) {
1040     biography = cooked;
1041   }
1042 
1043  /**
1044   * Retrieves the Biography value, with locking, for this 
1045   * <code>Author</code> <code>Persistent</code>.
1046   * Field description: 
1047   *   A biography for the author 
1048   * 
1049   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
1050   * @throws AccessPoemException 
1051   *         if the current <code>AccessToken</code> 
1052   *         does not confer write access rights 
1053   * @return the value of the field <code>Biography</code> for this 
1054   *         <code>Author</code> <code>Persistent</code>  
1055   */
1056 
1057   public String getBiography()
1058       throws AccessPoemException {
1059     readLock();
1060     return getBiography_unsafe();
1061   }
1062 
1063 
1064  /**
1065   * Sets the <code>Biography</code> value, with checking, for this 
1066   * <code>Author</code> <code>Persistent</code>.
1067   * Field description: 
1068   *   A biography for the author 
1069   * 
1070   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
1071   * @param cooked  a validated <code>int</code> 
1072   * @throws AccessPoemException 
1073   *         if the current <code>AccessToken</code> 
1074   *         does not confer write access rights
1075   * @throws ValidationPoemException 
1076   *         if the value is not valid
1077   */
1078   public void setBiography(String cooked)
1079       throws AccessPoemException, ValidationPoemException {
1080     _getAuthorTable().getBiographyColumn().
1081       getType().assertValidCooked(cooked);
1082     writeLock();
1083     setBiography_unsafe(cooked);
1084   }
1085 
1086 
1087  /**
1088   * Retrieves the <code>Biography</code> value as a <code>Field</code>
1089   * from this <code>Author</code> <code>Persistent</code>.
1090   * 
1091   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
1092   * @throws AccessPoemException 
1093   *         if the current <code>AccessToken</code> 
1094   *         does not confer write access rights
1095   * @return the String biography
1096   */
1097   public Field<String> getBiographyField() throws AccessPoemException {
1098     Column<String> c = _getAuthorTable().getBiographyColumn();
1099     return new Field<String>((String)c.getRaw(this), c);
1100   }
1101 
1102 
1103  /**
1104   * Retrieves the <code>Nonstandard</code> value, without locking, 
1105   * for this <code>Author</code> <code>Persistent</code>.
1106   *
1107   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
1108   * @return the Boolean nonstandard
1109   */
1110   public Boolean getNonstandard_unsafe() {
1111     return nonstandard;
1112   }
1113 
1114 
1115  /**
1116   * Sets the <code>Nonstandard</code> value directly, without checking, 
1117   * for this Author <code>Persistent</code>.
1118   * 
1119   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
1120   * @param cooked  the pre-validated value to set
1121   */
1122   public void setNonstandard_unsafe(Boolean cooked) {
1123     nonstandard = cooked;
1124   }
1125 
1126  /**
1127   * Retrieves the Nonstandard value, with locking, for this 
1128   * <code>Author</code> <code>Persistent</code>.
1129   * Field description: 
1130   *   If set then Author.wm is not used, any .wm files in the directory, such 
1131   *   as index.wm, are used. 
1132   * 
1133   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
1134   * @throws AccessPoemException 
1135   *         if the current <code>AccessToken</code> 
1136   *         does not confer write access rights 
1137   * @return the value of the field <code>Nonstandard</code> for this 
1138   *         <code>Author</code> <code>Persistent</code>  
1139   */
1140 
1141   public Boolean getNonstandard()
1142       throws AccessPoemException {
1143     readLock();
1144     return getNonstandard_unsafe();
1145   }
1146 
1147 
1148  /**
1149   * Sets the <code>Nonstandard</code> value, with checking, for this 
1150   * <code>Author</code> <code>Persistent</code>.
1151   * Field description: 
1152   *   If set then Author.wm is not used, any .wm files in the directory, such 
1153   *   as index.wm, are used. 
1154   * 
1155   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
1156   * @param cooked  a validated <code>int</code> 
1157   * @throws AccessPoemException 
1158   *         if the current <code>AccessToken</code> 
1159   *         does not confer write access rights
1160   * @throws ValidationPoemException 
1161   *         if the value is not valid
1162   */
1163   public void setNonstandard(Boolean cooked)
1164       throws AccessPoemException, ValidationPoemException {
1165     _getAuthorTable().getNonstandardColumn().
1166       getType().assertValidCooked(cooked);
1167     writeLock();
1168     setNonstandard_unsafe(cooked);
1169   }
1170 
1171  /**
1172   * Sets the <code>Nonstandard</code> value, with checking, 
1173   * from a <code>boolean</code>, for this 
1174   * <code>Author</code> <code>Persistent</code>.
1175   * Field description: 
1176   *   If set then Author.wm is not used, any .wm files in the directory, such 
1177   *   as index.wm, are used. 
1178   * 
1179   * 
1180   * Generated by org.melati.poem.prepro.BooleanFieldDef#generateBaseMethods 
1181   * @param cooked  a <code>boolean</code> 
1182   * @throws AccessPoemException 
1183   *         if the current <code>AccessToken</code> 
1184   *         does not confer write access rights
1185   * @throws ValidationPoemException 
1186   *         if the value is not valid
1187   */
1188 
1189   public final void setNonstandard(boolean cooked)
1190       throws AccessPoemException, ValidationPoemException {
1191     setNonstandard(cooked ? Boolean.TRUE : Boolean.FALSE);
1192   }
1193 
1194 
1195  /**
1196   * Retrieves the <code>Nonstandard</code> value as a <code>Field</code>
1197   * from this <code>Author</code> <code>Persistent</code>.
1198   * 
1199   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
1200   * @throws AccessPoemException 
1201   *         if the current <code>AccessToken</code> 
1202   *         does not confer write access rights
1203   * @return the Boolean nonstandard
1204   */
1205   public Field<Boolean> getNonstandardField() throws AccessPoemException {
1206     Column<Boolean> c = _getAuthorTable().getNonstandardColumn();
1207     return new Field<Boolean>((Boolean)c.getRaw(this), c);
1208   }
1209 
1210   private CachedSelection<AuthorWebSite> authorAuthorWebSites = null;
1211   /** References to this Author in the AuthorWebSite table via its author field.*/
1212   @SuppressWarnings("unchecked")
1213   public Enumeration<AuthorWebSite> getAuthorAuthorWebSites() {
1214     if (getTroid() == null)
1215       return new EmptyEnumeration<AuthorWebSite>();
1216     else {
1217       if (authorAuthorWebSites == null)
1218         authorAuthorWebSites =
1219           getBibliomaniaDatabaseTables().getAuthorWebSiteTable().getAuthorColumn().cachedSelectionWhereEq(getTroid());
1220       return authorAuthorWebSites.objects();
1221     }
1222   }
1223 
1224 
1225   /** References to this Author in the AuthorWebSite table via its author field, as a List.*/
1226   public List<AuthorWebSite> getAuthorAuthorWebSiteList() {
1227     return Collections.list(getAuthorAuthorWebSites());
1228   }
1229 
1230 
1231 
1232   private CachedSelection<ProductAssociation> authorProductAssociations = null;
1233   /** References to this Author in the ProductAssociation table via its author field.*/
1234   @SuppressWarnings("unchecked")
1235   public Enumeration<ProductAssociation> getAuthorProductAssociations() {
1236     if (getTroid() == null)
1237       return new EmptyEnumeration<ProductAssociation>();
1238     else {
1239       if (authorProductAssociations == null)
1240         authorProductAssociations =
1241           getBibliomaniaDatabaseTables().getProductAssociationTable().getAuthorColumn().cachedSelectionWhereEq(getTroid());
1242       return authorProductAssociations.objects();
1243     }
1244   }
1245 
1246 
1247   /** References to this Author in the ProductAssociation table via its author field, as a List.*/
1248   public List<ProductAssociation> getAuthorProductAssociationList() {
1249     return Collections.list(getAuthorProductAssociations());
1250   }
1251 
1252 
1253 
1254 }
1255