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.sql.Timestamp;
7 import java.util.Collections;
8 import java.util.Enumeration;
9 import java.util.List;
10 import org.melati.poem.AccessPoemException;
11 import org.melati.poem.CachedSelection;
12 import org.melati.poem.Capability;
13 import org.melati.poem.Column;
14 import org.melati.poem.Field;
15 import org.melati.poem.NoSuchRowPoemException;
16 import org.melati.poem.ValidationPoemException;
17 import org.melati.poem.util.EmptyEnumeration;
18 import org.paneris.bibliomania.Advert;
19 import org.paneris.bibliomania.Author;
20 import org.paneris.bibliomania.BibliomaniaDatabaseTables;
21 import org.paneris.bibliomania.Book;
22 import org.paneris.bibliomania.BookStocking;
23 import org.paneris.bibliomania.BookTable;
24 import org.paneris.bibliomania.Product;
25 import org.paneris.bibliomania.ProductAssociation;
26 import org.paneris.bibliomania.Section;
27 import org.paneris.bibliomania.Unit;
28
29
30 /**
31 * Melati POEM generated abstract base class for a <code>Persistent</code>
32 * <code>Book</code> Object.
33 *
34 * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava
35 */
36 public abstract class BookBase extends Unit {
37
38
39 /**
40 * Retrieves the Database object.
41 *
42 * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava
43 * @return the database
44 */
45 public BibliomaniaDatabaseTables getBibliomaniaDatabaseTables() {
46 return (BibliomaniaDatabaseTables)getDatabase();
47 }
48
49
50 /**
51 * Retrieves the <code>BookTable</code> table
52 * which this <code>Persistent</code> is from.
53 *
54 * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava
55 * @return the BookTable
56 */
57 @SuppressWarnings("unchecked")
58 public BookTable<Book> getBookTable() {
59 return (BookTable<Book>)getTable();
60 }
61
62 @SuppressWarnings("unchecked")
63 private BookTable<Book> _getBookTable() {
64 return (BookTable<Book>)getTable();
65 }
66
67 // Fields in this table
68 /**
69 * id
70 */
71 protected Integer id;
72 /**
73 * section - The category under which the book falls
74 */
75 protected Integer section;
76 /**
77 * author - The book's author
78 */
79 protected Integer author;
80 /**
81 * advert - Advert for this book
82 */
83 protected Integer advert;
84 /**
85 * authorsequence - An internal number used to distinguish between books by
86 * the same author in creating textIDs for the full text indexing subsystem
87 */
88 protected Integer authorsequence;
89 /**
90 * Short title - A manageably short version of the book's title
91 */
92 protected String title;
93 /**
94 * Full title - The `full Monty' version of the book's title, if different
95 */
96 protected String fulltitleifdifferent;
97 /**
98 * paginated - Whether the book's chapters should be displayed in
99 * pre-paginated form
100 */
101 protected Boolean paginated;
102 /**
103 * metatag_description
104 */
105 protected String metatag_description;
106 /**
107 * metatag_keywords
108 */
109 protected String metatag_keywords;
110 /**
111 * Last bookshop search - When a search was last made for stockings of this
112 * book in the online bookshops
113 */
114 protected Timestamp lastbookshopsearch;
115 /**
116 * `Read content' capability - The capability required for reading the book
117 * (defaults to that for section)
118 */
119 protected Integer overridecanreadcontent;
120 /**
121 * summary - The book's blurb, to appear on its TOC page
122 */
123 protected String summary;
124 /**
125 * Has no front page - Whether the book should simply display the first page
126 * of its content instead of a `front page'
127 */
128 protected Boolean hasnofrontpage;
129 /**
130 * Non-standard - Whether the book has its own non-standard template
131 */
132 protected Boolean nonstandard;
133
134
135 /**
136 * Retrieves the <code>Id</code> value, without locking,
137 * for this <code>Book</code> <code>Persistent</code>.
138 *
139 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
140 * @return the Integer id
141 */
142 public Integer getId_unsafe() {
143 return id;
144 }
145
146
147 /**
148 * Sets the <code>Id</code> value directly, without checking,
149 * for this Book <code>Persistent</code>.
150 *
151 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
152 * @param cooked the pre-validated value to set
153 */
154 public void setId_unsafe(Integer cooked) {
155 id = cooked;
156 }
157
158 /**
159 * Retrieves the Id value, with locking, for this
160 * <code>Book</code> <code>Persistent</code>.
161 *
162 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
163 * @throws AccessPoemException
164 * if the current <code>AccessToken</code>
165 * does not confer write access rights
166 * @return the value of the field <code>Id</code> for this
167 * <code>Book</code> <code>Persistent</code>
168 */
169
170 public Integer getId()
171 throws AccessPoemException {
172 readLock();
173 return getId_unsafe();
174 }
175
176
177 /**
178 * Sets the <code>Id</code> value, with checking, for this
179 * <code>Book</code> <code>Persistent</code>.
180 *
181 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
182 * @param cooked a validated <code>int</code>
183 * @throws AccessPoemException
184 * if the current <code>AccessToken</code>
185 * does not confer write access rights
186 * @throws ValidationPoemException
187 * if the value is not valid
188 */
189 public void setId(Integer cooked)
190 throws AccessPoemException, ValidationPoemException {
191 _getBookTable().getIdColumn().
192 getType().assertValidCooked(cooked);
193 writeLock();
194 setId_unsafe(cooked);
195 }
196
197 /**
198 * Sets the <code>Id</code> value, with checking, for this
199 * <code>Book</code> <code>Persistent</code>.
200 *
201 * Generated by org.melati.poem.prepro.IntegerFieldDef#generateBaseMethods
202 * @param cooked a validated <code>int</code>
203 * @throws AccessPoemException
204 * if the current <code>AccessToken</code>
205 * does not confer write access rights
206 * @throws ValidationPoemException
207 * if the value is not valid
208 */
209
210 public final void setId(int cooked)
211 throws AccessPoemException, ValidationPoemException {
212 setId(new Integer(cooked));
213 }
214
215
216 /**
217 * Retrieves the <code>Id</code> value as a <code>Field</code>
218 * from this <code>Book</code> <code>Persistent</code>.
219 *
220 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
221 * @throws AccessPoemException
222 * if the current <code>AccessToken</code>
223 * does not confer write access rights
224 * @return the Integer id
225 */
226 public Field<Integer> getIdField() throws AccessPoemException {
227 Column<Integer> c = _getBookTable().getIdColumn();
228 return new Field<Integer>((Integer)c.getRaw(this), c);
229 }
230
231
232 /**
233 * Retrieves the <code>Section</code> value, without locking,
234 * for this <code>Book</code> <code>Persistent</code>.
235 *
236 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
237 * @return the Integer section
238 */
239 public Integer getSection_unsafe() {
240 return section;
241 }
242
243
244 /**
245 * Sets the <code>Section</code> value directly, without checking,
246 * for this Book <code>Persistent</code>.
247 *
248 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
249 * @param cooked the pre-validated value to set
250 */
251 public void setSection_unsafe(Integer cooked) {
252 section = cooked;
253 }
254
255 /**
256 * Retrieves the Table Row Object ID.
257 *
258 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
259 * @throws AccessPoemException
260 * if the current <code>AccessToken</code>
261 * does not confer read access rights
262 * @return the TROID as an <code>Integer</code>
263 */
264
265 public Integer getSectionTroid()
266 throws AccessPoemException {
267 readLock();
268 return getSection_unsafe();
269 }
270
271
272 /**
273 * Sets the Table Row Object ID.
274 *
275 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
276 * @param raw a Table Row Object Id
277 * @throws AccessPoemException
278 * if the current <code>AccessToken</code>
279 * does not confer write access rights
280 */
281 public void setSectionTroid(Integer raw)
282 throws AccessPoemException {
283 setSection(raw == null ? null :
284 (Section)getBibliomaniaDatabaseTables().getSectionTable().getSectionObject(raw));
285 }
286
287
288 /**
289 * Retrieves the <code>Section</code> object referred to.
290 *
291 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
292 * @throws AccessPoemException
293 * if the current <code>AccessToken</code>
294 * does not confer read access rights
295 * @throws NoSuchRowPoemException
296 * if the <code>Persistent</code> has yet to be allocated a TROID
297 * @return the <code>Section</code> as a <code>Section</code>
298 */
299 public Section getSection()
300 throws AccessPoemException, NoSuchRowPoemException {
301 Integer troid = getSectionTroid();
302 return troid == null ? null :
303 (Section)getBibliomaniaDatabaseTables().getSectionTable().getSectionObject(troid);
304 }
305
306
307 /**
308 * Set the Section.
309 *
310 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
311 * @param cooked a validated <code>Section</code>
312 * @throws AccessPoemException
313 * if the current <code>AccessToken</code>
314 * does not confer write access rights
315 */
316 public void setSection(Section cooked)
317 throws AccessPoemException {
318 _getBookTable().
319 getSectionColumn().
320 getType().assertValidCooked(cooked);
321 writeLock();
322 if (cooked == null)
323 setSection_unsafe(null);
324 else {
325 cooked.existenceLock();
326 setSection_unsafe(cooked.troid());
327 }
328 }
329
330
331 /**
332 * Retrieves the <code>Section</code> value as a <code>Field</code>
333 * from this <code>Book</code> <code>Persistent</code>.
334 *
335 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
336 * @throws AccessPoemException
337 * if the current <code>AccessToken</code>
338 * does not confer write access rights
339 * @return the Integer section
340 */
341 public Field<Integer> getSectionField() throws AccessPoemException {
342 Column<Integer> c = _getBookTable().getSectionColumn();
343 return new Field<Integer>((Integer)c.getRaw(this), c);
344 }
345
346
347 /**
348 * Retrieves the <code>Author</code> value, without locking,
349 * for this <code>Book</code> <code>Persistent</code>.
350 *
351 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
352 * @return the Integer author
353 */
354 public Integer getAuthor_unsafe() {
355 return author;
356 }
357
358
359 /**
360 * Sets the <code>Author</code> value directly, without checking,
361 * for this Book <code>Persistent</code>.
362 *
363 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
364 * @param cooked the pre-validated value to set
365 */
366 public void setAuthor_unsafe(Integer cooked) {
367 author = cooked;
368 }
369
370 /**
371 * Retrieves the Table Row Object ID.
372 *
373 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
374 * @throws AccessPoemException
375 * if the current <code>AccessToken</code>
376 * does not confer read access rights
377 * @return the TROID as an <code>Integer</code>
378 */
379
380 public Integer getAuthorTroid()
381 throws AccessPoemException {
382 readLock();
383 return getAuthor_unsafe();
384 }
385
386
387 /**
388 * Sets the Table Row Object ID.
389 *
390 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
391 * @param raw a Table Row Object Id
392 * @throws AccessPoemException
393 * if the current <code>AccessToken</code>
394 * does not confer write access rights
395 */
396 public void setAuthorTroid(Integer raw)
397 throws AccessPoemException {
398 setAuthor(raw == null ? null :
399 (Author)getBibliomaniaDatabaseTables().getAuthorTable().getAuthorObject(raw));
400 }
401
402
403 /**
404 * Retrieves the <code>Author</code> object referred to.
405 *
406 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
407 * @throws AccessPoemException
408 * if the current <code>AccessToken</code>
409 * does not confer read access rights
410 * @throws NoSuchRowPoemException
411 * if the <code>Persistent</code> has yet to be allocated a TROID
412 * @return the <code>Author</code> as a <code>Author</code>
413 */
414 public Author getAuthor()
415 throws AccessPoemException, NoSuchRowPoemException {
416 Integer troid = getAuthorTroid();
417 return troid == null ? null :
418 (Author)getBibliomaniaDatabaseTables().getAuthorTable().getAuthorObject(troid);
419 }
420
421
422 /**
423 * Set the Author.
424 *
425 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
426 * @param cooked a validated <code>Author</code>
427 * @throws AccessPoemException
428 * if the current <code>AccessToken</code>
429 * does not confer write access rights
430 */
431 public void setAuthor(Author cooked)
432 throws AccessPoemException {
433 _getBookTable().
434 getAuthorColumn().
435 getType().assertValidCooked(cooked);
436 writeLock();
437 if (cooked == null)
438 setAuthor_unsafe(null);
439 else {
440 cooked.existenceLock();
441 setAuthor_unsafe(cooked.troid());
442 }
443 }
444
445
446 /**
447 * Retrieves the <code>Author</code> value as a <code>Field</code>
448 * from this <code>Book</code> <code>Persistent</code>.
449 *
450 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
451 * @throws AccessPoemException
452 * if the current <code>AccessToken</code>
453 * does not confer write access rights
454 * @return the Integer author
455 */
456 public Field<Integer> getAuthorField() throws AccessPoemException {
457 Column<Integer> c = _getBookTable().getAuthorColumn();
458 return new Field<Integer>((Integer)c.getRaw(this), c);
459 }
460
461
462 /**
463 * Retrieves the <code>Advert</code> value, without locking,
464 * for this <code>Book</code> <code>Persistent</code>.
465 *
466 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
467 * @return the Integer advert
468 */
469 public Integer getAdvert_unsafe() {
470 return advert;
471 }
472
473
474 /**
475 * Sets the <code>Advert</code> value directly, without checking,
476 * for this Book <code>Persistent</code>.
477 *
478 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
479 * @param cooked the pre-validated value to set
480 */
481 public void setAdvert_unsafe(Integer cooked) {
482 advert = cooked;
483 }
484
485 /**
486 * Retrieves the Table Row Object ID.
487 *
488 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
489 * @throws AccessPoemException
490 * if the current <code>AccessToken</code>
491 * does not confer read access rights
492 * @return the TROID as an <code>Integer</code>
493 */
494
495 public Integer getAdvertTroid()
496 throws AccessPoemException {
497 readLock();
498 return getAdvert_unsafe();
499 }
500
501
502 /**
503 * Sets the Table Row Object ID.
504 *
505 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
506 * @param raw a Table Row Object Id
507 * @throws AccessPoemException
508 * if the current <code>AccessToken</code>
509 * does not confer write access rights
510 */
511 public void setAdvertTroid(Integer raw)
512 throws AccessPoemException {
513 setAdvert(raw == null ? null :
514 getBibliomaniaDatabaseTables().getAdvertTable().getAdvertObject(raw));
515 }
516
517
518 /**
519 * Retrieves the <code>Advert</code> object referred to.
520 *
521 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
522 * @throws AccessPoemException
523 * if the current <code>AccessToken</code>
524 * does not confer read access rights
525 * @throws NoSuchRowPoemException
526 * if the <code>Persistent</code> has yet to be allocated a TROID
527 * @return the <code>Advert</code> as a <code>Advert</code>
528 */
529 public Advert getAdvert()
530 throws AccessPoemException, NoSuchRowPoemException {
531 Integer troid = getAdvertTroid();
532 return troid == null ? null :
533 getBibliomaniaDatabaseTables().getAdvertTable().getAdvertObject(troid);
534 }
535
536
537 /**
538 * Set the Advert.
539 *
540 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
541 * @param cooked a validated <code>Advert</code>
542 * @throws AccessPoemException
543 * if the current <code>AccessToken</code>
544 * does not confer write access rights
545 */
546 public void setAdvert(Advert cooked)
547 throws AccessPoemException {
548 _getBookTable().
549 getAdvertColumn().
550 getType().assertValidCooked(cooked);
551 writeLock();
552 if (cooked == null)
553 setAdvert_unsafe(null);
554 else {
555 cooked.existenceLock();
556 setAdvert_unsafe(cooked.troid());
557 }
558 }
559
560
561 /**
562 * Retrieves the <code>Advert</code> value as a <code>Field</code>
563 * from this <code>Book</code> <code>Persistent</code>.
564 *
565 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
566 * @throws AccessPoemException
567 * if the current <code>AccessToken</code>
568 * does not confer write access rights
569 * @return the Integer advert
570 */
571 public Field<Integer> getAdvertField() throws AccessPoemException {
572 Column<Integer> c = _getBookTable().getAdvertColumn();
573 return new Field<Integer>((Integer)c.getRaw(this), c);
574 }
575
576
577 /**
578 * Retrieves the <code>Authorsequence</code> value, without locking,
579 * for this <code>Book</code> <code>Persistent</code>.
580 *
581 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
582 * @return the Integer authorsequence
583 */
584 public Integer getAuthorsequence_unsafe() {
585 return authorsequence;
586 }
587
588
589 /**
590 * Sets the <code>Authorsequence</code> value directly, without checking,
591 * for this Book <code>Persistent</code>.
592 *
593 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
594 * @param cooked the pre-validated value to set
595 */
596 public void setAuthorsequence_unsafe(Integer cooked) {
597 authorsequence = cooked;
598 }
599
600 /**
601 * Retrieves the Authorsequence value, with locking, for this
602 * <code>Book</code> <code>Persistent</code>.
603 * Field description:
604 * An internal number used to distinguish between books by the same author
605 * in creating textIDs for the full text indexing subsystem
606 *
607 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
608 * @throws AccessPoemException
609 * if the current <code>AccessToken</code>
610 * does not confer write access rights
611 * @return the value of the field <code>Authorsequence</code> for this
612 * <code>Book</code> <code>Persistent</code>
613 */
614
615 public Integer getAuthorsequence()
616 throws AccessPoemException {
617 readLock();
618 return getAuthorsequence_unsafe();
619 }
620
621
622 /**
623 * Sets the <code>Authorsequence</code> value, with checking, for this
624 * <code>Book</code> <code>Persistent</code>.
625 * Field description:
626 * An internal number used to distinguish between books by the same author
627 * in creating textIDs for the full text indexing subsystem
628 *
629 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
630 * @param cooked a validated <code>int</code>
631 * @throws AccessPoemException
632 * if the current <code>AccessToken</code>
633 * does not confer write access rights
634 * @throws ValidationPoemException
635 * if the value is not valid
636 */
637 public void setAuthorsequence(Integer cooked)
638 throws AccessPoemException, ValidationPoemException {
639 _getBookTable().getAuthorsequenceColumn().
640 getType().assertValidCooked(cooked);
641 writeLock();
642 setAuthorsequence_unsafe(cooked);
643 }
644
645 /**
646 * Sets the <code>Authorsequence</code> value, with checking, for this
647 * <code>Book</code> <code>Persistent</code>.
648 * Field description:
649 * An internal number used to distinguish between books by the same author
650 * in creating textIDs for the full text indexing subsystem
651 *
652 *
653 * Generated by org.melati.poem.prepro.IntegerFieldDef#generateBaseMethods
654 * @param cooked a validated <code>int</code>
655 * @throws AccessPoemException
656 * if the current <code>AccessToken</code>
657 * does not confer write access rights
658 * @throws ValidationPoemException
659 * if the value is not valid
660 */
661
662 public final void setAuthorsequence(int cooked)
663 throws AccessPoemException, ValidationPoemException {
664 setAuthorsequence(new Integer(cooked));
665 }
666
667
668 /**
669 * Retrieves the <code>Authorsequence</code> value as a <code>Field</code>
670 * from this <code>Book</code> <code>Persistent</code>.
671 *
672 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
673 * @throws AccessPoemException
674 * if the current <code>AccessToken</code>
675 * does not confer write access rights
676 * @return the Integer authorsequence
677 */
678 public Field<Integer> getAuthorsequenceField() throws AccessPoemException {
679 Column<Integer> c = _getBookTable().getAuthorsequenceColumn();
680 return new Field<Integer>((Integer)c.getRaw(this), c);
681 }
682
683
684 /**
685 * Retrieves the <code>Title</code> value, without locking,
686 * for this <code>Book</code> <code>Persistent</code>.
687 *
688 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
689 * @return the String title
690 */
691 public String getTitle_unsafe() {
692 return title;
693 }
694
695
696 /**
697 * Sets the <code>Title</code> value directly, without checking,
698 * for this Book <code>Persistent</code>.
699 *
700 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
701 * @param cooked the pre-validated value to set
702 */
703 public void setTitle_unsafe(String cooked) {
704 title = cooked;
705 }
706
707 /**
708 * Retrieves the Title value, with locking, for this
709 * <code>Book</code> <code>Persistent</code>.
710 * Field description:
711 * A manageably short version of the book's title
712 *
713 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
714 * @throws AccessPoemException
715 * if the current <code>AccessToken</code>
716 * does not confer write access rights
717 * @return the value of the field <code>Title</code> for this
718 * <code>Book</code> <code>Persistent</code>
719 */
720
721 public String getTitle()
722 throws AccessPoemException {
723 readLock();
724 return getTitle_unsafe();
725 }
726
727
728 /**
729 * Sets the <code>Title</code> value, with checking, for this
730 * <code>Book</code> <code>Persistent</code>.
731 * Field description:
732 * A manageably short version of the book's title
733 *
734 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
735 * @param cooked a validated <code>int</code>
736 * @throws AccessPoemException
737 * if the current <code>AccessToken</code>
738 * does not confer write access rights
739 * @throws ValidationPoemException
740 * if the value is not valid
741 */
742 public void setTitle(String cooked)
743 throws AccessPoemException, ValidationPoemException {
744 _getBookTable().getTitleColumn().
745 getType().assertValidCooked(cooked);
746 writeLock();
747 setTitle_unsafe(cooked);
748 }
749
750
751 /**
752 * Retrieves the <code>Title</code> value as a <code>Field</code>
753 * from this <code>Book</code> <code>Persistent</code>.
754 *
755 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
756 * @throws AccessPoemException
757 * if the current <code>AccessToken</code>
758 * does not confer write access rights
759 * @return the String title
760 */
761 public Field<String> getTitleField() throws AccessPoemException {
762 Column<String> c = _getBookTable().getTitleColumn();
763 return new Field<String>((String)c.getRaw(this), c);
764 }
765
766
767 /**
768 * Retrieves the <code>Fulltitleifdifferent</code> value, without locking,
769 * for this <code>Book</code> <code>Persistent</code>.
770 *
771 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
772 * @return the String fulltitleifdifferent
773 */
774 public String getFulltitleifdifferent_unsafe() {
775 return fulltitleifdifferent;
776 }
777
778
779 /**
780 * Sets the <code>Fulltitleifdifferent</code> value directly, without checking,
781 * for this Book <code>Persistent</code>.
782 *
783 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
784 * @param cooked the pre-validated value to set
785 */
786 public void setFulltitleifdifferent_unsafe(String cooked) {
787 fulltitleifdifferent = cooked;
788 }
789
790 /**
791 * Retrieves the Fulltitleifdifferent value, with locking, for this
792 * <code>Book</code> <code>Persistent</code>.
793 * Field description:
794 * The `full Monty' version of the book's title, if different
795 *
796 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
797 * @throws AccessPoemException
798 * if the current <code>AccessToken</code>
799 * does not confer write access rights
800 * @return the value of the field <code>Fulltitleifdifferent</code> for this
801 * <code>Book</code> <code>Persistent</code>
802 */
803
804 public String getFulltitleifdifferent()
805 throws AccessPoemException {
806 readLock();
807 return getFulltitleifdifferent_unsafe();
808 }
809
810
811 /**
812 * Sets the <code>Fulltitleifdifferent</code> value, with checking, for this
813 * <code>Book</code> <code>Persistent</code>.
814 * Field description:
815 * The `full Monty' version of the book's title, if different
816 *
817 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
818 * @param cooked a validated <code>int</code>
819 * @throws AccessPoemException
820 * if the current <code>AccessToken</code>
821 * does not confer write access rights
822 * @throws ValidationPoemException
823 * if the value is not valid
824 */
825 public void setFulltitleifdifferent(String cooked)
826 throws AccessPoemException, ValidationPoemException {
827 _getBookTable().getFulltitleifdifferentColumn().
828 getType().assertValidCooked(cooked);
829 writeLock();
830 setFulltitleifdifferent_unsafe(cooked);
831 }
832
833
834 /**
835 * Retrieves the <code>Fulltitleifdifferent</code> value as a <code>Field</code>
836 * from this <code>Book</code> <code>Persistent</code>.
837 *
838 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
839 * @throws AccessPoemException
840 * if the current <code>AccessToken</code>
841 * does not confer write access rights
842 * @return the String fulltitleifdifferent
843 */
844 public Field<String> getFulltitleifdifferentField() throws AccessPoemException {
845 Column<String> c = _getBookTable().getFulltitleifdifferentColumn();
846 return new Field<String>((String)c.getRaw(this), c);
847 }
848
849
850 /**
851 * Retrieves the <code>Paginated</code> value, without locking,
852 * for this <code>Book</code> <code>Persistent</code>.
853 *
854 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
855 * @return the Boolean paginated
856 */
857 public Boolean getPaginated_unsafe() {
858 return paginated;
859 }
860
861
862 /**
863 * Sets the <code>Paginated</code> value directly, without checking,
864 * for this Book <code>Persistent</code>.
865 *
866 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
867 * @param cooked the pre-validated value to set
868 */
869 public void setPaginated_unsafe(Boolean cooked) {
870 paginated = cooked;
871 }
872
873 /**
874 * Retrieves the Paginated value, with locking, for this
875 * <code>Book</code> <code>Persistent</code>.
876 * Field description:
877 * Whether the book's chapters should be displayed in pre-paginated form
878 *
879 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
880 * @throws AccessPoemException
881 * if the current <code>AccessToken</code>
882 * does not confer write access rights
883 * @return the value of the field <code>Paginated</code> for this
884 * <code>Book</code> <code>Persistent</code>
885 */
886
887 public Boolean getPaginated()
888 throws AccessPoemException {
889 readLock();
890 return getPaginated_unsafe();
891 }
892
893
894 /**
895 * Sets the <code>Paginated</code> value, with checking, for this
896 * <code>Book</code> <code>Persistent</code>.
897 * Field description:
898 * Whether the book's chapters should be displayed in pre-paginated form
899 *
900 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
901 * @param cooked a validated <code>int</code>
902 * @throws AccessPoemException
903 * if the current <code>AccessToken</code>
904 * does not confer write access rights
905 * @throws ValidationPoemException
906 * if the value is not valid
907 */
908 public void setPaginated(Boolean cooked)
909 throws AccessPoemException, ValidationPoemException {
910 _getBookTable().getPaginatedColumn().
911 getType().assertValidCooked(cooked);
912 writeLock();
913 setPaginated_unsafe(cooked);
914 }
915
916 /**
917 * Sets the <code>Paginated</code> value, with checking,
918 * from a <code>boolean</code>, for this
919 * <code>Book</code> <code>Persistent</code>.
920 * Field description:
921 * Whether the book's chapters should be displayed in pre-paginated form
922 *
923 *
924 * Generated by org.melati.poem.prepro.BooleanFieldDef#generateBaseMethods
925 * @param cooked a <code>boolean</code>
926 * @throws AccessPoemException
927 * if the current <code>AccessToken</code>
928 * does not confer write access rights
929 * @throws ValidationPoemException
930 * if the value is not valid
931 */
932
933 public final void setPaginated(boolean cooked)
934 throws AccessPoemException, ValidationPoemException {
935 setPaginated(cooked ? Boolean.TRUE : Boolean.FALSE);
936 }
937
938
939 /**
940 * Retrieves the <code>Paginated</code> value as a <code>Field</code>
941 * from this <code>Book</code> <code>Persistent</code>.
942 *
943 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
944 * @throws AccessPoemException
945 * if the current <code>AccessToken</code>
946 * does not confer write access rights
947 * @return the Boolean paginated
948 */
949 public Field<Boolean> getPaginatedField() throws AccessPoemException {
950 Column<Boolean> c = _getBookTable().getPaginatedColumn();
951 return new Field<Boolean>((Boolean)c.getRaw(this), c);
952 }
953
954
955 /**
956 * Retrieves the <code>Metatag_description</code> value, without locking,
957 * for this <code>Book</code> <code>Persistent</code>.
958 *
959 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
960 * @return the String metatag_description
961 */
962 public String getMetatag_description_unsafe() {
963 return metatag_description;
964 }
965
966
967 /**
968 * Sets the <code>Metatag_description</code> value directly, without checking,
969 * for this Book <code>Persistent</code>.
970 *
971 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
972 * @param cooked the pre-validated value to set
973 */
974 public void setMetatag_description_unsafe(String cooked) {
975 metatag_description = cooked;
976 }
977
978 /**
979 * Retrieves the Metatag_description value, with locking, for this
980 * <code>Book</code> <code>Persistent</code>.
981 *
982 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
983 * @throws AccessPoemException
984 * if the current <code>AccessToken</code>
985 * does not confer write access rights
986 * @return the value of the field <code>Metatag_description</code> for this
987 * <code>Book</code> <code>Persistent</code>
988 */
989
990 public String getMetatag_description()
991 throws AccessPoemException {
992 readLock();
993 return getMetatag_description_unsafe();
994 }
995
996
997 /**
998 * Sets the <code>Metatag_description</code> value, with checking, for this
999 * <code>Book</code> <code>Persistent</code>.
1000 *
1001 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
1002 * @param cooked a validated <code>int</code>
1003 * @throws AccessPoemException
1004 * if the current <code>AccessToken</code>
1005 * does not confer write access rights
1006 * @throws ValidationPoemException
1007 * if the value is not valid
1008 */
1009 public void setMetatag_description(String cooked)
1010 throws AccessPoemException, ValidationPoemException {
1011 _getBookTable().getMetatag_descriptionColumn().
1012 getType().assertValidCooked(cooked);
1013 writeLock();
1014 setMetatag_description_unsafe(cooked);
1015 }
1016
1017
1018 /**
1019 * Retrieves the <code>Metatag_description</code> value as a <code>Field</code>
1020 * from this <code>Book</code> <code>Persistent</code>.
1021 *
1022 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
1023 * @throws AccessPoemException
1024 * if the current <code>AccessToken</code>
1025 * does not confer write access rights
1026 * @return the String metatag_description
1027 */
1028 public Field<String> getMetatag_descriptionField() throws AccessPoemException {
1029 Column<String> c = _getBookTable().getMetatag_descriptionColumn();
1030 return new Field<String>((String)c.getRaw(this), c);
1031 }
1032
1033
1034 /**
1035 * Retrieves the <code>Metatag_keywords</code> value, without locking,
1036 * for this <code>Book</code> <code>Persistent</code>.
1037 *
1038 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
1039 * @return the String metatag_keywords
1040 */
1041 public String getMetatag_keywords_unsafe() {
1042 return metatag_keywords;
1043 }
1044
1045
1046 /**
1047 * Sets the <code>Metatag_keywords</code> value directly, without checking,
1048 * for this Book <code>Persistent</code>.
1049 *
1050 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
1051 * @param cooked the pre-validated value to set
1052 */
1053 public void setMetatag_keywords_unsafe(String cooked) {
1054 metatag_keywords = cooked;
1055 }
1056
1057 /**
1058 * Retrieves the Metatag_keywords value, with locking, for this
1059 * <code>Book</code> <code>Persistent</code>.
1060 *
1061 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
1062 * @throws AccessPoemException
1063 * if the current <code>AccessToken</code>
1064 * does not confer write access rights
1065 * @return the value of the field <code>Metatag_keywords</code> for this
1066 * <code>Book</code> <code>Persistent</code>
1067 */
1068
1069 public String getMetatag_keywords()
1070 throws AccessPoemException {
1071 readLock();
1072 return getMetatag_keywords_unsafe();
1073 }
1074
1075
1076 /**
1077 * Sets the <code>Metatag_keywords</code> value, with checking, for this
1078 * <code>Book</code> <code>Persistent</code>.
1079 *
1080 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
1081 * @param cooked a validated <code>int</code>
1082 * @throws AccessPoemException
1083 * if the current <code>AccessToken</code>
1084 * does not confer write access rights
1085 * @throws ValidationPoemException
1086 * if the value is not valid
1087 */
1088 public void setMetatag_keywords(String cooked)
1089 throws AccessPoemException, ValidationPoemException {
1090 _getBookTable().getMetatag_keywordsColumn().
1091 getType().assertValidCooked(cooked);
1092 writeLock();
1093 setMetatag_keywords_unsafe(cooked);
1094 }
1095
1096
1097 /**
1098 * Retrieves the <code>Metatag_keywords</code> value as a <code>Field</code>
1099 * from this <code>Book</code> <code>Persistent</code>.
1100 *
1101 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
1102 * @throws AccessPoemException
1103 * if the current <code>AccessToken</code>
1104 * does not confer write access rights
1105 * @return the String metatag_keywords
1106 */
1107 public Field<String> getMetatag_keywordsField() throws AccessPoemException {
1108 Column<String> c = _getBookTable().getMetatag_keywordsColumn();
1109 return new Field<String>((String)c.getRaw(this), c);
1110 }
1111
1112
1113 /**
1114 * Retrieves the <code>Lastbookshopsearch</code> value, without locking,
1115 * for this <code>Book</code> <code>Persistent</code>.
1116 *
1117 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
1118 * @return the Timestamp lastbookshopsearch
1119 */
1120 public Timestamp getLastbookshopsearch_unsafe() {
1121 return lastbookshopsearch;
1122 }
1123
1124
1125 /**
1126 * Sets the <code>Lastbookshopsearch</code> value directly, without checking,
1127 * for this Book <code>Persistent</code>.
1128 *
1129 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
1130 * @param cooked the pre-validated value to set
1131 */
1132 public void setLastbookshopsearch_unsafe(Timestamp cooked) {
1133 lastbookshopsearch = cooked;
1134 }
1135
1136 /**
1137 * Retrieves the Lastbookshopsearch value, with locking, for this
1138 * <code>Book</code> <code>Persistent</code>.
1139 * Field description:
1140 * When a search was last made for stockings of this book in the online
1141 * bookshops
1142 *
1143 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
1144 * @throws AccessPoemException
1145 * if the current <code>AccessToken</code>
1146 * does not confer write access rights
1147 * @return the value of the field <code>Lastbookshopsearch</code> for this
1148 * <code>Book</code> <code>Persistent</code>
1149 */
1150
1151 public Timestamp getLastbookshopsearch()
1152 throws AccessPoemException {
1153 readLock();
1154 return getLastbookshopsearch_unsafe();
1155 }
1156
1157
1158 /**
1159 * Sets the <code>Lastbookshopsearch</code> value, with checking, for this
1160 * <code>Book</code> <code>Persistent</code>.
1161 * Field description:
1162 * When a search was last made for stockings of this book in the online
1163 * bookshops
1164 *
1165 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
1166 * @param cooked a validated <code>int</code>
1167 * @throws AccessPoemException
1168 * if the current <code>AccessToken</code>
1169 * does not confer write access rights
1170 * @throws ValidationPoemException
1171 * if the value is not valid
1172 */
1173 public void setLastbookshopsearch(Timestamp cooked)
1174 throws AccessPoemException, ValidationPoemException {
1175 _getBookTable().getLastbookshopsearchColumn().
1176 getType().assertValidCooked(cooked);
1177 writeLock();
1178 setLastbookshopsearch_unsafe(cooked);
1179 }
1180
1181
1182 /**
1183 * Retrieves the <code>Lastbookshopsearch</code> value as a <code>Field</code>
1184 * from this <code>Book</code> <code>Persistent</code>.
1185 *
1186 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
1187 * @throws AccessPoemException
1188 * if the current <code>AccessToken</code>
1189 * does not confer write access rights
1190 * @return the Timestamp lastbookshopsearch
1191 */
1192 public Field<Timestamp> getLastbookshopsearchField() throws AccessPoemException {
1193 Column<Timestamp> c = _getBookTable().getLastbookshopsearchColumn();
1194 return new Field<Timestamp>((Timestamp)c.getRaw(this), c);
1195 }
1196
1197
1198 /**
1199 * Retrieves the <code>Overridecanreadcontent</code> value, without locking,
1200 * for this <code>Book</code> <code>Persistent</code>.
1201 *
1202 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
1203 * @return the Integer overridecanreadcontent
1204 */
1205 public Integer getOverridecanreadcontent_unsafe() {
1206 return overridecanreadcontent;
1207 }
1208
1209
1210 /**
1211 * Sets the <code>Overridecanreadcontent</code> value directly, without checking,
1212 * for this Book <code>Persistent</code>.
1213 *
1214 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
1215 * @param cooked the pre-validated value to set
1216 */
1217 public void setOverridecanreadcontent_unsafe(Integer cooked) {
1218 overridecanreadcontent = cooked;
1219 }
1220
1221 /**
1222 * Retrieves the Table Row Object ID.
1223 *
1224 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
1225 * @throws AccessPoemException
1226 * if the current <code>AccessToken</code>
1227 * does not confer read access rights
1228 * @return the TROID as an <code>Integer</code>
1229 */
1230
1231 public Integer getOverridecanreadcontentTroid()
1232 throws AccessPoemException {
1233 readLock();
1234 return getOverridecanreadcontent_unsafe();
1235 }
1236
1237
1238 /**
1239 * Sets the Table Row Object ID.
1240 *
1241 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
1242 * @param raw a Table Row Object Id
1243 * @throws AccessPoemException
1244 * if the current <code>AccessToken</code>
1245 * does not confer write access rights
1246 */
1247 public void setOverridecanreadcontentTroid(Integer raw)
1248 throws AccessPoemException {
1249 setOverridecanreadcontent(raw == null ? null :
1250 getBibliomaniaDatabaseTables().getCapabilityTable().getCapabilityObject(raw));
1251 }
1252
1253
1254 /**
1255 * Retrieves the <code>Overridecanreadcontent</code> object referred to.
1256 *
1257 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
1258 * @throws AccessPoemException
1259 * if the current <code>AccessToken</code>
1260 * does not confer read access rights
1261 * @throws NoSuchRowPoemException
1262 * if the <code>Persistent</code> has yet to be allocated a TROID
1263 * @return the <code>Overridecanreadcontent</code> as a <code>Capability</code>
1264 */
1265 public Capability getOverridecanreadcontent()
1266 throws AccessPoemException, NoSuchRowPoemException {
1267 Integer troid = getOverridecanreadcontentTroid();
1268 return troid == null ? null :
1269 getBibliomaniaDatabaseTables().getCapabilityTable().getCapabilityObject(troid);
1270 }
1271
1272
1273 /**
1274 * Set the Overridecanreadcontent.
1275 *
1276 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
1277 * @param cooked a validated <code>Capability</code>
1278 * @throws AccessPoemException
1279 * if the current <code>AccessToken</code>
1280 * does not confer write access rights
1281 */
1282 public void setOverridecanreadcontent(Capability cooked)
1283 throws AccessPoemException {
1284 _getBookTable().
1285 getOverridecanreadcontentColumn().
1286 getType().assertValidCooked(cooked);
1287 writeLock();
1288 if (cooked == null)
1289 setOverridecanreadcontent_unsafe(null);
1290 else {
1291 cooked.existenceLock();
1292 setOverridecanreadcontent_unsafe(cooked.troid());
1293 }
1294 }
1295
1296
1297 /**
1298 * Retrieves the <code>Overridecanreadcontent</code> value as a <code>Field</code>
1299 * from this <code>Book</code> <code>Persistent</code>.
1300 *
1301 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
1302 * @throws AccessPoemException
1303 * if the current <code>AccessToken</code>
1304 * does not confer write access rights
1305 * @return the Integer overridecanreadcontent
1306 */
1307 public Field<Integer> getOverridecanreadcontentField() throws AccessPoemException {
1308 Column<Integer> c = _getBookTable().getOverridecanreadcontentColumn();
1309 return new Field<Integer>((Integer)c.getRaw(this), c);
1310 }
1311
1312
1313 /**
1314 * Retrieves the <code>Summary</code> value, without locking,
1315 * for this <code>Book</code> <code>Persistent</code>.
1316 *
1317 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
1318 * @return the String summary
1319 */
1320 public String getSummary_unsafe() {
1321 return summary;
1322 }
1323
1324
1325 /**
1326 * Sets the <code>Summary</code> value directly, without checking,
1327 * for this Book <code>Persistent</code>.
1328 *
1329 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
1330 * @param cooked the pre-validated value to set
1331 */
1332 public void setSummary_unsafe(String cooked) {
1333 summary = cooked;
1334 }
1335
1336 /**
1337 * Retrieves the Summary value, with locking, for this
1338 * <code>Book</code> <code>Persistent</code>.
1339 * Field description:
1340 * The book's blurb, to appear on its TOC page
1341 *
1342 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
1343 * @throws AccessPoemException
1344 * if the current <code>AccessToken</code>
1345 * does not confer write access rights
1346 * @return the value of the field <code>Summary</code> for this
1347 * <code>Book</code> <code>Persistent</code>
1348 */
1349
1350 public String getSummary()
1351 throws AccessPoemException {
1352 readLock();
1353 return getSummary_unsafe();
1354 }
1355
1356
1357 /**
1358 * Sets the <code>Summary</code> value, with checking, for this
1359 * <code>Book</code> <code>Persistent</code>.
1360 * Field description:
1361 * The book's blurb, to appear on its TOC page
1362 *
1363 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
1364 * @param cooked a validated <code>int</code>
1365 * @throws AccessPoemException
1366 * if the current <code>AccessToken</code>
1367 * does not confer write access rights
1368 * @throws ValidationPoemException
1369 * if the value is not valid
1370 */
1371 public void setSummary(String cooked)
1372 throws AccessPoemException, ValidationPoemException {
1373 _getBookTable().getSummaryColumn().
1374 getType().assertValidCooked(cooked);
1375 writeLock();
1376 setSummary_unsafe(cooked);
1377 }
1378
1379
1380 /**
1381 * Retrieves the <code>Summary</code> value as a <code>Field</code>
1382 * from this <code>Book</code> <code>Persistent</code>.
1383 *
1384 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
1385 * @throws AccessPoemException
1386 * if the current <code>AccessToken</code>
1387 * does not confer write access rights
1388 * @return the String summary
1389 */
1390 public Field<String> getSummaryField() throws AccessPoemException {
1391 Column<String> c = _getBookTable().getSummaryColumn();
1392 return new Field<String>((String)c.getRaw(this), c);
1393 }
1394
1395
1396 /**
1397 * Retrieves the <code>Hasnofrontpage</code> value, without locking,
1398 * for this <code>Book</code> <code>Persistent</code>.
1399 *
1400 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
1401 * @return the Boolean hasnofrontpage
1402 */
1403 public Boolean getHasnofrontpage_unsafe() {
1404 return hasnofrontpage;
1405 }
1406
1407
1408 /**
1409 * Sets the <code>Hasnofrontpage</code> value directly, without checking,
1410 * for this Book <code>Persistent</code>.
1411 *
1412 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
1413 * @param cooked the pre-validated value to set
1414 */
1415 public void setHasnofrontpage_unsafe(Boolean cooked) {
1416 hasnofrontpage = cooked;
1417 }
1418
1419 /**
1420 * Retrieves the Hasnofrontpage value, with locking, for this
1421 * <code>Book</code> <code>Persistent</code>.
1422 * Field description:
1423 * Whether the book should simply display the first page of its content
1424 * instead of a `front page'
1425 *
1426 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
1427 * @throws AccessPoemException
1428 * if the current <code>AccessToken</code>
1429 * does not confer write access rights
1430 * @return the value of the field <code>Hasnofrontpage</code> for this
1431 * <code>Book</code> <code>Persistent</code>
1432 */
1433
1434 public Boolean getHasnofrontpage()
1435 throws AccessPoemException {
1436 readLock();
1437 return getHasnofrontpage_unsafe();
1438 }
1439
1440
1441 /**
1442 * Sets the <code>Hasnofrontpage</code> value, with checking, for this
1443 * <code>Book</code> <code>Persistent</code>.
1444 * Field description:
1445 * Whether the book should simply display the first page of its content
1446 * instead of a `front page'
1447 *
1448 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
1449 * @param cooked a validated <code>int</code>
1450 * @throws AccessPoemException
1451 * if the current <code>AccessToken</code>
1452 * does not confer write access rights
1453 * @throws ValidationPoemException
1454 * if the value is not valid
1455 */
1456 public void setHasnofrontpage(Boolean cooked)
1457 throws AccessPoemException, ValidationPoemException {
1458 _getBookTable().getHasnofrontpageColumn().
1459 getType().assertValidCooked(cooked);
1460 writeLock();
1461 setHasnofrontpage_unsafe(cooked);
1462 }
1463
1464 /**
1465 * Sets the <code>Hasnofrontpage</code> value, with checking,
1466 * from a <code>boolean</code>, for this
1467 * <code>Book</code> <code>Persistent</code>.
1468 * Field description:
1469 * Whether the book should simply display the first page of its content
1470 * instead of a `front page'
1471 *
1472 *
1473 * Generated by org.melati.poem.prepro.BooleanFieldDef#generateBaseMethods
1474 * @param cooked a <code>boolean</code>
1475 * @throws AccessPoemException
1476 * if the current <code>AccessToken</code>
1477 * does not confer write access rights
1478 * @throws ValidationPoemException
1479 * if the value is not valid
1480 */
1481
1482 public final void setHasnofrontpage(boolean cooked)
1483 throws AccessPoemException, ValidationPoemException {
1484 setHasnofrontpage(cooked ? Boolean.TRUE : Boolean.FALSE);
1485 }
1486
1487
1488 /**
1489 * Retrieves the <code>Hasnofrontpage</code> value as a <code>Field</code>
1490 * from this <code>Book</code> <code>Persistent</code>.
1491 *
1492 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
1493 * @throws AccessPoemException
1494 * if the current <code>AccessToken</code>
1495 * does not confer write access rights
1496 * @return the Boolean hasnofrontpage
1497 */
1498 public Field<Boolean> getHasnofrontpageField() throws AccessPoemException {
1499 Column<Boolean> c = _getBookTable().getHasnofrontpageColumn();
1500 return new Field<Boolean>((Boolean)c.getRaw(this), c);
1501 }
1502
1503
1504 /**
1505 * Retrieves the <code>Nonstandard</code> value, without locking,
1506 * for this <code>Book</code> <code>Persistent</code>.
1507 *
1508 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
1509 * @return the Boolean nonstandard
1510 */
1511 public Boolean getNonstandard_unsafe() {
1512 return nonstandard;
1513 }
1514
1515
1516 /**
1517 * Sets the <code>Nonstandard</code> value directly, without checking,
1518 * for this Book <code>Persistent</code>.
1519 *
1520 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
1521 * @param cooked the pre-validated value to set
1522 */
1523 public void setNonstandard_unsafe(Boolean cooked) {
1524 nonstandard = cooked;
1525 }
1526
1527 /**
1528 * Retrieves the Nonstandard value, with locking, for this
1529 * <code>Book</code> <code>Persistent</code>.
1530 * Field description:
1531 * Whether the book has its own non-standard template
1532 *
1533 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
1534 * @throws AccessPoemException
1535 * if the current <code>AccessToken</code>
1536 * does not confer write access rights
1537 * @return the value of the field <code>Nonstandard</code> for this
1538 * <code>Book</code> <code>Persistent</code>
1539 */
1540
1541 public Boolean getNonstandard()
1542 throws AccessPoemException {
1543 readLock();
1544 return getNonstandard_unsafe();
1545 }
1546
1547
1548 /**
1549 * Sets the <code>Nonstandard</code> value, with checking, for this
1550 * <code>Book</code> <code>Persistent</code>.
1551 * Field description:
1552 * Whether the book has its own non-standard template
1553 *
1554 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
1555 * @param cooked a validated <code>int</code>
1556 * @throws AccessPoemException
1557 * if the current <code>AccessToken</code>
1558 * does not confer write access rights
1559 * @throws ValidationPoemException
1560 * if the value is not valid
1561 */
1562 public void setNonstandard(Boolean cooked)
1563 throws AccessPoemException, ValidationPoemException {
1564 _getBookTable().getNonstandardColumn().
1565 getType().assertValidCooked(cooked);
1566 writeLock();
1567 setNonstandard_unsafe(cooked);
1568 }
1569
1570 /**
1571 * Sets the <code>Nonstandard</code> value, with checking,
1572 * from a <code>boolean</code>, for this
1573 * <code>Book</code> <code>Persistent</code>.
1574 * Field description:
1575 * Whether the book has its own non-standard template
1576 *
1577 *
1578 * Generated by org.melati.poem.prepro.BooleanFieldDef#generateBaseMethods
1579 * @param cooked a <code>boolean</code>
1580 * @throws AccessPoemException
1581 * if the current <code>AccessToken</code>
1582 * does not confer write access rights
1583 * @throws ValidationPoemException
1584 * if the value is not valid
1585 */
1586
1587 public final void setNonstandard(boolean cooked)
1588 throws AccessPoemException, ValidationPoemException {
1589 setNonstandard(cooked ? Boolean.TRUE : Boolean.FALSE);
1590 }
1591
1592
1593 /**
1594 * Retrieves the <code>Nonstandard</code> value as a <code>Field</code>
1595 * from this <code>Book</code> <code>Persistent</code>.
1596 *
1597 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
1598 * @throws AccessPoemException
1599 * if the current <code>AccessToken</code>
1600 * does not confer write access rights
1601 * @return the Boolean nonstandard
1602 */
1603 public Field<Boolean> getNonstandardField() throws AccessPoemException {
1604 Column<Boolean> c = _getBookTable().getNonstandardColumn();
1605 return new Field<Boolean>((Boolean)c.getRaw(this), c);
1606 }
1607
1608 private CachedSelection<Product> bookProducts = null;
1609 /** References to this Book in the Product table via its book field.*/
1610 @SuppressWarnings("unchecked")
1611 public Enumeration<Product> getBookProducts() {
1612 if (getTroid() == null)
1613 return new EmptyEnumeration<Product>();
1614 else {
1615 if (bookProducts == null)
1616 bookProducts =
1617 getBibliomaniaDatabaseTables().getProductTable().getBookColumn().cachedSelectionWhereEq(getTroid());
1618 return bookProducts.objects();
1619 }
1620 }
1621
1622
1623 /** References to this Book in the Product table via its book field, as a List.*/
1624 public List<Product> getBookProductList() {
1625 return Collections.list(getBookProducts());
1626 }
1627
1628
1629
1630 private CachedSelection<ProductAssociation> bookProductAssociations = null;
1631 /** References to this Book in the ProductAssociation table via its book field.*/
1632 @SuppressWarnings("unchecked")
1633 public Enumeration<ProductAssociation> getBookProductAssociations() {
1634 if (getTroid() == null)
1635 return new EmptyEnumeration<ProductAssociation>();
1636 else {
1637 if (bookProductAssociations == null)
1638 bookProductAssociations =
1639 getBibliomaniaDatabaseTables().getProductAssociationTable().getBookColumn().cachedSelectionWhereEq(getTroid());
1640 return bookProductAssociations.objects();
1641 }
1642 }
1643
1644
1645 /** References to this Book in the ProductAssociation table via its book field, as a List.*/
1646 public List<ProductAssociation> getBookProductAssociationList() {
1647 return Collections.list(getBookProductAssociations());
1648 }
1649
1650
1651
1652 private CachedSelection<BookStocking> bookBookStockings = null;
1653 /** References to this Book in the BookStocking table via its book field.*/
1654 @SuppressWarnings("unchecked")
1655 public Enumeration<BookStocking> getBookBookStockings() {
1656 if (getTroid() == null)
1657 return new EmptyEnumeration<BookStocking>();
1658 else {
1659 if (bookBookStockings == null)
1660 bookBookStockings =
1661 getBibliomaniaDatabaseTables().getBookStockingTable().getBookColumn().cachedSelectionWhereEq(getTroid());
1662 return bookBookStockings.objects();
1663 }
1664 }
1665
1666
1667 /** References to this Book in the BookStocking table via its book field, as a List.*/
1668 public List<BookStocking> getBookBookStockingList() {
1669 return Collections.list(getBookBookStockings());
1670 }
1671
1672
1673
1674 }
1675