Coverage Report - org.paneris.bibliomania.generated.ProductBase
 
Classes in this File Line Coverage Branch Coverage Complexity
ProductBase
0%
0/193
0%
0/38
1.272
 
 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.JdbcPersistent;
 14  
 import org.melati.poem.NoSuchRowPoemException;
 15  
 import org.melati.poem.ValidationPoemException;
 16  
 import org.melati.poem.util.EmptyEnumeration;
 17  
 import org.paneris.bibliomania.BibliomaniaDatabaseTables;
 18  
 import org.paneris.bibliomania.Book;
 19  
 import org.paneris.bibliomania.BookFormat;
 20  
 import org.paneris.bibliomania.Download;
 21  
 import org.paneris.bibliomania.Product;
 22  
 import org.paneris.bibliomania.ProductAssociation;
 23  
 import org.paneris.bibliomania.ProductTable;
 24  
 import org.paneris.bibliomania.Publisher;
 25  
 import org.paneris.bibliomania.ShopOrderItem;
 26  
 import org.paneris.bibliomania.SupplierProduct;
 27  
 
 28  
 
 29  
 /**
 30  
  * Melati POEM generated abstract base class for a <code>Persistent</code> 
 31  
  * <code>Product</code> Object.
 32  
  *
 33  
  * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava 
 34  
  */
 35  0
 public abstract class ProductBase extends JdbcPersistent {
 36  
 
 37  
 
 38  
  /**
 39  
   * Retrieves the Database object.
 40  
   * 
 41  
   * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava 
 42  
   * @return the database
 43  
   */
 44  
   public BibliomaniaDatabaseTables getBibliomaniaDatabaseTables() {
 45  0
     return (BibliomaniaDatabaseTables)getDatabase();
 46  
   }
 47  
 
 48  
 
 49  
  /**
 50  
   * Retrieves the  <code>ProductTable</code> table 
 51  
   * which this <code>Persistent</code> is from.
 52  
   * 
 53  
   * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava 
 54  
   * @return the ProductTable
 55  
   */
 56  
   @SuppressWarnings("unchecked")
 57  
   public ProductTable<Product> getProductTable() {
 58  0
     return (ProductTable<Product>)getTable();
 59  
   }
 60  
 
 61  
   @SuppressWarnings("unchecked")
 62  
   private ProductTable<Product> _getProductTable() {
 63  0
     return (ProductTable<Product>)getTable();
 64  
   }
 65  
 
 66  
   // Fields in this table 
 67  
  /**
 68  
   * id 
 69  
   */
 70  
   protected Integer id;
 71  
  /**
 72  
   * book - The book to be sold 
 73  
   */
 74  
   protected Integer book;
 75  
  /**
 76  
   * publisher - The publisher for this product 
 77  
   */
 78  
   protected Integer publisher;
 79  
  /**
 80  
   * download - The download object for this product (if any) 
 81  
   */
 82  
   protected Integer download;
 83  
  /**
 84  
   * Product Name - A name for this product if different to the Book title 
 85  
   */
 86  
   protected String name;
 87  
  /**
 88  
   * Description - Additional blurb about the product  
 89  
   */
 90  
   protected String description;
 91  
  /**
 92  
   * Retail Price - Price payable by the customer, including discounts, 
 93  
   * excluding delivery 
 94  
   */
 95  
   protected Double price;
 96  
  /**
 97  
   * List Price - The normal selling price of the product, not including 
 98  
   * delivery 
 99  
   */
 100  
   protected Double listprice;
 101  
  /**
 102  
   * ISBN - The ISBN number of this product (if any) 
 103  
   */
 104  
   protected String ISBN;
 105  
  /**
 106  
   * Picture - A jacket cover image or similar 
 107  
   */
 108  
   protected String picture;
 109  
  /**
 110  
   * Deleted? 
 111  
   */
 112  
   protected Boolean deleted;
 113  
  /**
 114  
   * format - The type of the product 
 115  
   */
 116  
   protected Integer format;
 117  
 
 118  
 
 119  
  /**
 120  
   * Retrieves the <code>Id</code> value, without locking, 
 121  
   * for this <code>Product</code> <code>Persistent</code>.
 122  
   *
 123  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 124  
   * @return the Integer id
 125  
   */
 126  
   public Integer getId_unsafe() {
 127  0
     return id;
 128  
   }
 129  
 
 130  
 
 131  
  /**
 132  
   * Sets the <code>Id</code> value directly, without checking, 
 133  
   * for this Product <code>Persistent</code>.
 134  
   * 
 135  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 136  
   * @param cooked  the pre-validated value to set
 137  
   */
 138  
   public void setId_unsafe(Integer cooked) {
 139  0
     id = cooked;
 140  0
   }
 141  
 
 142  
  /**
 143  
   * Retrieves the Id value, with locking, for this 
 144  
   * <code>Product</code> <code>Persistent</code>.
 145  
   * 
 146  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
 147  
   * @throws AccessPoemException 
 148  
   *         if the current <code>AccessToken</code> 
 149  
   *         does not confer write access rights 
 150  
   * @return the value of the field <code>Id</code> for this 
 151  
   *         <code>Product</code> <code>Persistent</code>  
 152  
   */
 153  
 
 154  
   public Integer getId()
 155  
       throws AccessPoemException {
 156  0
     readLock();
 157  0
     return getId_unsafe();
 158  
   }
 159  
 
 160  
 
 161  
  /**
 162  
   * Sets the <code>Id</code> value, with checking, for this 
 163  
   * <code>Product</code> <code>Persistent</code>.
 164  
   * 
 165  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
 166  
   * @param cooked  a validated <code>int</code> 
 167  
   * @throws AccessPoemException 
 168  
   *         if the current <code>AccessToken</code> 
 169  
   *         does not confer write access rights
 170  
   * @throws ValidationPoemException 
 171  
   *         if the value is not valid
 172  
   */
 173  
   public void setId(Integer cooked)
 174  
       throws AccessPoemException, ValidationPoemException {
 175  0
     _getProductTable().getIdColumn().
 176  
       getType().assertValidCooked(cooked);
 177  0
     writeLock();
 178  0
     setId_unsafe(cooked);
 179  0
   }
 180  
 
 181  
  /**
 182  
   * Sets the <code>Id</code> value, with checking, for this 
 183  
   * <code>Product</code> <code>Persistent</code>.
 184  
   * 
 185  
   * Generated by org.melati.poem.prepro.IntegerFieldDef#generateBaseMethods 
 186  
   * @param cooked  a validated <code>int</code>
 187  
   * @throws AccessPoemException 
 188  
   *         if the current <code>AccessToken</code> 
 189  
   *         does not confer write access rights
 190  
   * @throws ValidationPoemException 
 191  
   *         if the value is not valid
 192  
   */
 193  
 
 194  
   public final void setId(int cooked)
 195  
       throws AccessPoemException, ValidationPoemException {
 196  0
     setId(new Integer(cooked));
 197  0
   }
 198  
 
 199  
 
 200  
  /**
 201  
   * Retrieves the <code>Id</code> value as a <code>Field</code>
 202  
   * from this <code>Product</code> <code>Persistent</code>.
 203  
   * 
 204  
   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
 205  
   * @throws AccessPoemException 
 206  
   *         if the current <code>AccessToken</code> 
 207  
   *         does not confer write access rights
 208  
   * @return the Integer id
 209  
   */
 210  
   public Field<Integer> getIdField() throws AccessPoemException {
 211  0
     Column<Integer> c = _getProductTable().getIdColumn();
 212  0
     return new Field<Integer>((Integer)c.getRaw(this), c);
 213  
   }
 214  
 
 215  
 
 216  
  /**
 217  
   * Retrieves the <code>Book</code> value, without locking, 
 218  
   * for this <code>Product</code> <code>Persistent</code>.
 219  
   *
 220  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 221  
   * @return the Integer book
 222  
   */
 223  
   public Integer getBook_unsafe() {
 224  0
     return book;
 225  
   }
 226  
 
 227  
 
 228  
  /**
 229  
   * Sets the <code>Book</code> value directly, without checking, 
 230  
   * for this Product <code>Persistent</code>.
 231  
   * 
 232  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 233  
   * @param cooked  the pre-validated value to set
 234  
   */
 235  
   public void setBook_unsafe(Integer cooked) {
 236  0
     book = cooked;
 237  0
   }
 238  
 
 239  
  /**
 240  
   * Retrieves the Table Row Object ID. 
 241  
   *
 242  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 243  
   * @throws AccessPoemException  
 244  
   *         if the current <code>AccessToken</code> 
 245  
   *         does not confer read access rights 
 246  
   * @return the TROID as an <code>Integer</code> 
 247  
   */
 248  
 
 249  
   public Integer getBookTroid()
 250  
       throws AccessPoemException {
 251  0
     readLock();
 252  0
     return getBook_unsafe();
 253  
   }
 254  
 
 255  
 
 256  
  /**
 257  
   * Sets the Table Row Object ID. 
 258  
   * 
 259  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 260  
   * @param raw  a Table Row Object Id 
 261  
   * @throws AccessPoemException  
 262  
   *         if the current <code>AccessToken</code> 
 263  
   *         does not confer write access rights
 264  
   */
 265  
   public void setBookTroid(Integer raw)
 266  
       throws AccessPoemException {
 267  0
     setBook(raw == null ? null : 
 268  
         (Book)getBibliomaniaDatabaseTables().getBookTable().getBookObject(raw));
 269  0
   }
 270  
 
 271  
 
 272  
  /**
 273  
   * Retrieves the <code>Book</code> object referred to.
 274  
   *  
 275  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 276  
   * @throws AccessPoemException  
 277  
   *         if the current <code>AccessToken</code> 
 278  
   *         does not confer read access rights 
 279  
   * @throws NoSuchRowPoemException  
 280  
   *         if the <code>Persistent</code> has yet to be allocated a TROID 
 281  
   * @return the <code>Book</code> as a <code>Book</code> 
 282  
   */
 283  
   public Book getBook()
 284  
       throws AccessPoemException, NoSuchRowPoemException {
 285  0
     Integer troid = getBookTroid();
 286  0
     return troid == null ? null :
 287  
         (Book)getBibliomaniaDatabaseTables().getBookTable().getBookObject(troid);
 288  
   }
 289  
 
 290  
 
 291  
  /**
 292  
   * Set the Book.
 293  
   * 
 294  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 295  
   * @param cooked  a validated <code>Book</code>
 296  
   * @throws AccessPoemException  
 297  
   *         if the current <code>AccessToken</code> 
 298  
   *         does not confer write access rights 
 299  
   */
 300  
   public void setBook(Book cooked)
 301  
       throws AccessPoemException {
 302  0
     _getProductTable().
 303  
       getBookColumn().
 304  
         getType().assertValidCooked(cooked);
 305  0
     writeLock();
 306  0
     if (cooked == null)
 307  0
       setBook_unsafe(null);
 308  
     else {
 309  0
       cooked.existenceLock();
 310  0
       setBook_unsafe(cooked.troid());
 311  
     }
 312  0
   }
 313  
 
 314  
 
 315  
  /**
 316  
   * Retrieves the <code>Book</code> value as a <code>Field</code>
 317  
   * from this <code>Product</code> <code>Persistent</code>.
 318  
   * 
 319  
   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
 320  
   * @throws AccessPoemException 
 321  
   *         if the current <code>AccessToken</code> 
 322  
   *         does not confer write access rights
 323  
   * @return the Integer book
 324  
   */
 325  
   public Field<Integer> getBookField() throws AccessPoemException {
 326  0
     Column<Integer> c = _getProductTable().getBookColumn();
 327  0
     return new Field<Integer>((Integer)c.getRaw(this), c);
 328  
   }
 329  
 
 330  
 
 331  
  /**
 332  
   * Retrieves the <code>Publisher</code> value, without locking, 
 333  
   * for this <code>Product</code> <code>Persistent</code>.
 334  
   *
 335  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 336  
   * @return the Integer publisher
 337  
   */
 338  
   public Integer getPublisher_unsafe() {
 339  0
     return publisher;
 340  
   }
 341  
 
 342  
 
 343  
  /**
 344  
   * Sets the <code>Publisher</code> value directly, without checking, 
 345  
   * for this Product <code>Persistent</code>.
 346  
   * 
 347  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 348  
   * @param cooked  the pre-validated value to set
 349  
   */
 350  
   public void setPublisher_unsafe(Integer cooked) {
 351  0
     publisher = cooked;
 352  0
   }
 353  
 
 354  
  /**
 355  
   * Retrieves the Table Row Object ID. 
 356  
   *
 357  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 358  
   * @throws AccessPoemException  
 359  
   *         if the current <code>AccessToken</code> 
 360  
   *         does not confer read access rights 
 361  
   * @return the TROID as an <code>Integer</code> 
 362  
   */
 363  
 
 364  
   public Integer getPublisherTroid()
 365  
       throws AccessPoemException {
 366  0
     readLock();
 367  0
     return getPublisher_unsafe();
 368  
   }
 369  
 
 370  
 
 371  
  /**
 372  
   * Sets the Table Row Object ID. 
 373  
   * 
 374  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 375  
   * @param raw  a Table Row Object Id 
 376  
   * @throws AccessPoemException  
 377  
   *         if the current <code>AccessToken</code> 
 378  
   *         does not confer write access rights
 379  
   */
 380  
   public void setPublisherTroid(Integer raw)
 381  
       throws AccessPoemException {
 382  0
     setPublisher(raw == null ? null : 
 383  
         getBibliomaniaDatabaseTables().getPublisherTable().getPublisherObject(raw));
 384  0
   }
 385  
 
 386  
 
 387  
  /**
 388  
   * Retrieves the <code>Publisher</code> object referred to.
 389  
   *  
 390  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 391  
   * @throws AccessPoemException  
 392  
   *         if the current <code>AccessToken</code> 
 393  
   *         does not confer read access rights 
 394  
   * @throws NoSuchRowPoemException  
 395  
   *         if the <code>Persistent</code> has yet to be allocated a TROID 
 396  
   * @return the <code>Publisher</code> as a <code>Publisher</code> 
 397  
   */
 398  
   public Publisher getPublisher()
 399  
       throws AccessPoemException, NoSuchRowPoemException {
 400  0
     Integer troid = getPublisherTroid();
 401  0
     return troid == null ? null :
 402  
         getBibliomaniaDatabaseTables().getPublisherTable().getPublisherObject(troid);
 403  
   }
 404  
 
 405  
 
 406  
  /**
 407  
   * Set the Publisher.
 408  
   * 
 409  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 410  
   * @param cooked  a validated <code>Publisher</code>
 411  
   * @throws AccessPoemException  
 412  
   *         if the current <code>AccessToken</code> 
 413  
   *         does not confer write access rights 
 414  
   */
 415  
   public void setPublisher(Publisher cooked)
 416  
       throws AccessPoemException {
 417  0
     _getProductTable().
 418  
       getPublisherColumn().
 419  
         getType().assertValidCooked(cooked);
 420  0
     writeLock();
 421  0
     if (cooked == null)
 422  0
       setPublisher_unsafe(null);
 423  
     else {
 424  0
       cooked.existenceLock();
 425  0
       setPublisher_unsafe(cooked.troid());
 426  
     }
 427  0
   }
 428  
 
 429  
 
 430  
  /**
 431  
   * Retrieves the <code>Publisher</code> value as a <code>Field</code>
 432  
   * from this <code>Product</code> <code>Persistent</code>.
 433  
   * 
 434  
   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
 435  
   * @throws AccessPoemException 
 436  
   *         if the current <code>AccessToken</code> 
 437  
   *         does not confer write access rights
 438  
   * @return the Integer publisher
 439  
   */
 440  
   public Field<Integer> getPublisherField() throws AccessPoemException {
 441  0
     Column<Integer> c = _getProductTable().getPublisherColumn();
 442  0
     return new Field<Integer>((Integer)c.getRaw(this), c);
 443  
   }
 444  
 
 445  
 
 446  
  /**
 447  
   * Retrieves the <code>Download</code> value, without locking, 
 448  
   * for this <code>Product</code> <code>Persistent</code>.
 449  
   *
 450  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 451  
   * @return the Integer download
 452  
   */
 453  
   public Integer getDownload_unsafe() {
 454  0
     return download;
 455  
   }
 456  
 
 457  
 
 458  
  /**
 459  
   * Sets the <code>Download</code> value directly, without checking, 
 460  
   * for this Product <code>Persistent</code>.
 461  
   * 
 462  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 463  
   * @param cooked  the pre-validated value to set
 464  
   */
 465  
   public void setDownload_unsafe(Integer cooked) {
 466  0
     download = cooked;
 467  0
   }
 468  
 
 469  
  /**
 470  
   * Retrieves the Table Row Object ID. 
 471  
   *
 472  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 473  
   * @throws AccessPoemException  
 474  
   *         if the current <code>AccessToken</code> 
 475  
   *         does not confer read access rights 
 476  
   * @return the TROID as an <code>Integer</code> 
 477  
   */
 478  
 
 479  
   public Integer getDownloadTroid()
 480  
       throws AccessPoemException {
 481  0
     readLock();
 482  0
     return getDownload_unsafe();
 483  
   }
 484  
 
 485  
 
 486  
  /**
 487  
   * Sets the Table Row Object ID. 
 488  
   * 
 489  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 490  
   * @param raw  a Table Row Object Id 
 491  
   * @throws AccessPoemException  
 492  
   *         if the current <code>AccessToken</code> 
 493  
   *         does not confer write access rights
 494  
   */
 495  
   public void setDownloadTroid(Integer raw)
 496  
       throws AccessPoemException {
 497  0
     setDownload(raw == null ? null : 
 498  
         getBibliomaniaDatabaseTables().getDownloadTable().getDownloadObject(raw));
 499  0
   }
 500  
 
 501  
 
 502  
  /**
 503  
   * Retrieves the <code>Download</code> object referred to.
 504  
   *  
 505  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 506  
   * @throws AccessPoemException  
 507  
   *         if the current <code>AccessToken</code> 
 508  
   *         does not confer read access rights 
 509  
   * @throws NoSuchRowPoemException  
 510  
   *         if the <code>Persistent</code> has yet to be allocated a TROID 
 511  
   * @return the <code>Download</code> as a <code>Download</code> 
 512  
   */
 513  
   public Download getDownload()
 514  
       throws AccessPoemException, NoSuchRowPoemException {
 515  0
     Integer troid = getDownloadTroid();
 516  0
     return troid == null ? null :
 517  
         getBibliomaniaDatabaseTables().getDownloadTable().getDownloadObject(troid);
 518  
   }
 519  
 
 520  
 
 521  
  /**
 522  
   * Set the Download.
 523  
   * 
 524  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 525  
   * @param cooked  a validated <code>Download</code>
 526  
   * @throws AccessPoemException  
 527  
   *         if the current <code>AccessToken</code> 
 528  
   *         does not confer write access rights 
 529  
   */
 530  
   public void setDownload(Download cooked)
 531  
       throws AccessPoemException {
 532  0
     _getProductTable().
 533  
       getDownloadColumn().
 534  
         getType().assertValidCooked(cooked);
 535  0
     writeLock();
 536  0
     if (cooked == null)
 537  0
       setDownload_unsafe(null);
 538  
     else {
 539  0
       cooked.existenceLock();
 540  0
       setDownload_unsafe(cooked.troid());
 541  
     }
 542  0
   }
 543  
 
 544  
 
 545  
  /**
 546  
   * Retrieves the <code>Download</code> value as a <code>Field</code>
 547  
   * from this <code>Product</code> <code>Persistent</code>.
 548  
   * 
 549  
   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
 550  
   * @throws AccessPoemException 
 551  
   *         if the current <code>AccessToken</code> 
 552  
   *         does not confer write access rights
 553  
   * @return the Integer download
 554  
   */
 555  
   public Field<Integer> getDownloadField() throws AccessPoemException {
 556  0
     Column<Integer> c = _getProductTable().getDownloadColumn();
 557  0
     return new Field<Integer>((Integer)c.getRaw(this), c);
 558  
   }
 559  
 
 560  
 
 561  
  /**
 562  
   * Retrieves the <code>Name</code> value, without locking, 
 563  
   * for this <code>Product</code> <code>Persistent</code>.
 564  
   *
 565  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 566  
   * @return the String name
 567  
   */
 568  
   public String getName_unsafe() {
 569  0
     return name;
 570  
   }
 571  
 
 572  
 
 573  
  /**
 574  
   * Sets the <code>Name</code> value directly, without checking, 
 575  
   * for this Product <code>Persistent</code>.
 576  
   * 
 577  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 578  
   * @param cooked  the pre-validated value to set
 579  
   */
 580  
   public void setName_unsafe(String cooked) {
 581  0
     name = cooked;
 582  0
   }
 583  
 
 584  
  /**
 585  
   * Retrieves the Name value, with locking, for this 
 586  
   * <code>Product</code> <code>Persistent</code>.
 587  
   * Field description: 
 588  
   *   A name for this product if different to the Book title 
 589  
   * 
 590  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
 591  
   * @throws AccessPoemException 
 592  
   *         if the current <code>AccessToken</code> 
 593  
   *         does not confer write access rights 
 594  
   * @return the value of the field <code>Name</code> for this 
 595  
   *         <code>Product</code> <code>Persistent</code>  
 596  
   */
 597  
 
 598  
   public String getName()
 599  
       throws AccessPoemException {
 600  0
     readLock();
 601  0
     return getName_unsafe();
 602  
   }
 603  
 
 604  
 
 605  
  /**
 606  
   * Sets the <code>Name</code> value, with checking, for this 
 607  
   * <code>Product</code> <code>Persistent</code>.
 608  
   * Field description: 
 609  
   *   A name for this product if different to the Book title 
 610  
   * 
 611  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
 612  
   * @param cooked  a validated <code>int</code> 
 613  
   * @throws AccessPoemException 
 614  
   *         if the current <code>AccessToken</code> 
 615  
   *         does not confer write access rights
 616  
   * @throws ValidationPoemException 
 617  
   *         if the value is not valid
 618  
   */
 619  
   public void setName(String cooked)
 620  
       throws AccessPoemException, ValidationPoemException {
 621  0
     _getProductTable().getNameColumn().
 622  
       getType().assertValidCooked(cooked);
 623  0
     writeLock();
 624  0
     setName_unsafe(cooked);
 625  0
   }
 626  
 
 627  
 
 628  
  /**
 629  
   * Retrieves the <code>Name</code> value as a <code>Field</code>
 630  
   * from this <code>Product</code> <code>Persistent</code>.
 631  
   * 
 632  
   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
 633  
   * @throws AccessPoemException 
 634  
   *         if the current <code>AccessToken</code> 
 635  
   *         does not confer write access rights
 636  
   * @return the String name
 637  
   */
 638  
   public Field<String> getNameField() throws AccessPoemException {
 639  0
     Column<String> c = _getProductTable().getNameColumn();
 640  0
     return new Field<String>((String)c.getRaw(this), c);
 641  
   }
 642  
 
 643  
 
 644  
  /**
 645  
   * Retrieves the <code>Description</code> value, without locking, 
 646  
   * for this <code>Product</code> <code>Persistent</code>.
 647  
   *
 648  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 649  
   * @return the String description
 650  
   */
 651  
   public String getDescription_unsafe() {
 652  0
     return description;
 653  
   }
 654  
 
 655  
 
 656  
  /**
 657  
   * Sets the <code>Description</code> value directly, without checking, 
 658  
   * for this Product <code>Persistent</code>.
 659  
   * 
 660  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 661  
   * @param cooked  the pre-validated value to set
 662  
   */
 663  
   public void setDescription_unsafe(String cooked) {
 664  0
     description = cooked;
 665  0
   }
 666  
 
 667  
  /**
 668  
   * Retrieves the Description value, with locking, for this 
 669  
   * <code>Product</code> <code>Persistent</code>.
 670  
   * Field description: 
 671  
   *   Additional blurb about the product  
 672  
   * 
 673  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
 674  
   * @throws AccessPoemException 
 675  
   *         if the current <code>AccessToken</code> 
 676  
   *         does not confer write access rights 
 677  
   * @return the value of the field <code>Description</code> for this 
 678  
   *         <code>Product</code> <code>Persistent</code>  
 679  
   */
 680  
 
 681  
   public String getDescription()
 682  
       throws AccessPoemException {
 683  0
     readLock();
 684  0
     return getDescription_unsafe();
 685  
   }
 686  
 
 687  
 
 688  
  /**
 689  
   * Sets the <code>Description</code> value, with checking, for this 
 690  
   * <code>Product</code> <code>Persistent</code>.
 691  
   * Field description: 
 692  
   *   Additional blurb about the product  
 693  
   * 
 694  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
 695  
   * @param cooked  a validated <code>int</code> 
 696  
   * @throws AccessPoemException 
 697  
   *         if the current <code>AccessToken</code> 
 698  
   *         does not confer write access rights
 699  
   * @throws ValidationPoemException 
 700  
   *         if the value is not valid
 701  
   */
 702  
   public void setDescription(String cooked)
 703  
       throws AccessPoemException, ValidationPoemException {
 704  0
     _getProductTable().getDescriptionColumn().
 705  
       getType().assertValidCooked(cooked);
 706  0
     writeLock();
 707  0
     setDescription_unsafe(cooked);
 708  0
   }
 709  
 
 710  
 
 711  
  /**
 712  
   * Retrieves the <code>Description</code> value as a <code>Field</code>
 713  
   * from this <code>Product</code> <code>Persistent</code>.
 714  
   * 
 715  
   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
 716  
   * @throws AccessPoemException 
 717  
   *         if the current <code>AccessToken</code> 
 718  
   *         does not confer write access rights
 719  
   * @return the String description
 720  
   */
 721  
   public Field<String> getDescriptionField() throws AccessPoemException {
 722  0
     Column<String> c = _getProductTable().getDescriptionColumn();
 723  0
     return new Field<String>((String)c.getRaw(this), c);
 724  
   }
 725  
 
 726  
 
 727  
  /**
 728  
   * Retrieves the <code>Price</code> value, without locking, 
 729  
   * for this <code>Product</code> <code>Persistent</code>.
 730  
   *
 731  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 732  
   * @return the Double price
 733  
   */
 734  
   public Double getPrice_unsafe() {
 735  0
     return price;
 736  
   }
 737  
 
 738  
 
 739  
  /**
 740  
   * Sets the <code>Price</code> value directly, without checking, 
 741  
   * for this Product <code>Persistent</code>.
 742  
   * 
 743  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 744  
   * @param cooked  the pre-validated value to set
 745  
   */
 746  
   public void setPrice_unsafe(Double cooked) {
 747  0
     price = cooked;
 748  0
   }
 749  
 
 750  
  /**
 751  
   * Retrieves the Price value, with locking, for this 
 752  
   * <code>Product</code> <code>Persistent</code>.
 753  
   * Field description: 
 754  
   *   Price payable by the customer, including discounts, excluding delivery 
 755  
   * 
 756  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
 757  
   * @throws AccessPoemException 
 758  
   *         if the current <code>AccessToken</code> 
 759  
   *         does not confer write access rights 
 760  
   * @return the value of the field <code>Price</code> for this 
 761  
   *         <code>Product</code> <code>Persistent</code>  
 762  
   */
 763  
 
 764  
   public Double getPrice()
 765  
       throws AccessPoemException {
 766  0
     readLock();
 767  0
     return getPrice_unsafe();
 768  
   }
 769  
 
 770  
 
 771  
  /**
 772  
   * Sets the <code>Price</code> value, with checking, for this 
 773  
   * <code>Product</code> <code>Persistent</code>.
 774  
   * Field description: 
 775  
   *   Price payable by the customer, including discounts, excluding delivery 
 776  
   * 
 777  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
 778  
   * @param cooked  a validated <code>int</code> 
 779  
   * @throws AccessPoemException 
 780  
   *         if the current <code>AccessToken</code> 
 781  
   *         does not confer write access rights
 782  
   * @throws ValidationPoemException 
 783  
   *         if the value is not valid
 784  
   */
 785  
   public void setPrice(Double cooked)
 786  
       throws AccessPoemException, ValidationPoemException {
 787  0
     _getProductTable().getPriceColumn().
 788  
       getType().assertValidCooked(cooked);
 789  0
     writeLock();
 790  0
     setPrice_unsafe(cooked);
 791  0
   }
 792  
 
 793  
  /**
 794  
   * Sets the <code>Price</code> value, with checking, for this <code>Product</code> <code>Persistent</code>.
 795  
   * Field description: 
 796  
   *   Price payable by the customer, including discounts, excluding delivery 
 797  
   * 
 798  
   * 
 799  
   * Generated by org.melati.poem.prepro.DoubleFieldDef#generateBaseMethods 
 800  
   * @param cooked  a validated <code>int</code> 
 801  
   * @throws AccessPoemException 
 802  
   *         if the current <code>AccessToken</code> 
 803  
   *         does not confer write access rights
 804  
   * @throws ValidationPoemException 
 805  
   *         if the value is not valid
 806  
   */
 807  
 
 808  
   public final void setPrice(double cooked)
 809  
       throws AccessPoemException, ValidationPoemException {
 810  0
     setPrice(new Double(cooked));
 811  0
   }
 812  
 
 813  
 
 814  
  /**
 815  
   * Retrieves the <code>Price</code> value as a <code>Field</code>
 816  
   * from this <code>Product</code> <code>Persistent</code>.
 817  
   * 
 818  
   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
 819  
   * @throws AccessPoemException 
 820  
   *         if the current <code>AccessToken</code> 
 821  
   *         does not confer write access rights
 822  
   * @return the Double price
 823  
   */
 824  
   public Field<Double> getPriceField() throws AccessPoemException {
 825  0
     Column<Double> c = _getProductTable().getPriceColumn();
 826  0
     return new Field<Double>((Double)c.getRaw(this), c);
 827  
   }
 828  
 
 829  
 
 830  
  /**
 831  
   * Retrieves the <code>Listprice</code> value, without locking, 
 832  
   * for this <code>Product</code> <code>Persistent</code>.
 833  
   *
 834  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 835  
   * @return the Double listprice
 836  
   */
 837  
   public Double getListprice_unsafe() {
 838  0
     return listprice;
 839  
   }
 840  
 
 841  
 
 842  
  /**
 843  
   * Sets the <code>Listprice</code> value directly, without checking, 
 844  
   * for this Product <code>Persistent</code>.
 845  
   * 
 846  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 847  
   * @param cooked  the pre-validated value to set
 848  
   */
 849  
   public void setListprice_unsafe(Double cooked) {
 850  0
     listprice = cooked;
 851  0
   }
 852  
 
 853  
  /**
 854  
   * Retrieves the Listprice value, with locking, for this 
 855  
   * <code>Product</code> <code>Persistent</code>.
 856  
   * Field description: 
 857  
   *   The normal selling price of the product, not including delivery 
 858  
   * 
 859  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
 860  
   * @throws AccessPoemException 
 861  
   *         if the current <code>AccessToken</code> 
 862  
   *         does not confer write access rights 
 863  
   * @return the value of the field <code>Listprice</code> for this 
 864  
   *         <code>Product</code> <code>Persistent</code>  
 865  
   */
 866  
 
 867  
   public Double getListprice()
 868  
       throws AccessPoemException {
 869  0
     readLock();
 870  0
     return getListprice_unsafe();
 871  
   }
 872  
 
 873  
 
 874  
  /**
 875  
   * Sets the <code>Listprice</code> value, with checking, for this 
 876  
   * <code>Product</code> <code>Persistent</code>.
 877  
   * Field description: 
 878  
   *   The normal selling price of the product, not including delivery 
 879  
   * 
 880  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
 881  
   * @param cooked  a validated <code>int</code> 
 882  
   * @throws AccessPoemException 
 883  
   *         if the current <code>AccessToken</code> 
 884  
   *         does not confer write access rights
 885  
   * @throws ValidationPoemException 
 886  
   *         if the value is not valid
 887  
   */
 888  
   public void setListprice(Double cooked)
 889  
       throws AccessPoemException, ValidationPoemException {
 890  0
     _getProductTable().getListpriceColumn().
 891  
       getType().assertValidCooked(cooked);
 892  0
     writeLock();
 893  0
     setListprice_unsafe(cooked);
 894  0
   }
 895  
 
 896  
  /**
 897  
   * Sets the <code>Listprice</code> value, with checking, for this <code>Product</code> <code>Persistent</code>.
 898  
   * Field description: 
 899  
   *   The normal selling price of the product, not including delivery 
 900  
   * 
 901  
   * 
 902  
   * Generated by org.melati.poem.prepro.DoubleFieldDef#generateBaseMethods 
 903  
   * @param cooked  a validated <code>int</code> 
 904  
   * @throws AccessPoemException 
 905  
   *         if the current <code>AccessToken</code> 
 906  
   *         does not confer write access rights
 907  
   * @throws ValidationPoemException 
 908  
   *         if the value is not valid
 909  
   */
 910  
 
 911  
   public final void setListprice(double cooked)
 912  
       throws AccessPoemException, ValidationPoemException {
 913  0
     setListprice(new Double(cooked));
 914  0
   }
 915  
 
 916  
 
 917  
  /**
 918  
   * Retrieves the <code>Listprice</code> value as a <code>Field</code>
 919  
   * from this <code>Product</code> <code>Persistent</code>.
 920  
   * 
 921  
   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
 922  
   * @throws AccessPoemException 
 923  
   *         if the current <code>AccessToken</code> 
 924  
   *         does not confer write access rights
 925  
   * @return the Double listprice
 926  
   */
 927  
   public Field<Double> getListpriceField() throws AccessPoemException {
 928  0
     Column<Double> c = _getProductTable().getListpriceColumn();
 929  0
     return new Field<Double>((Double)c.getRaw(this), c);
 930  
   }
 931  
 
 932  
 
 933  
  /**
 934  
   * Retrieves the <code>ISBN</code> value, without locking, 
 935  
   * for this <code>Product</code> <code>Persistent</code>.
 936  
   *
 937  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 938  
   * @return the String ISBN
 939  
   */
 940  
   public String getISBN_unsafe() {
 941  0
     return ISBN;
 942  
   }
 943  
 
 944  
 
 945  
  /**
 946  
   * Sets the <code>ISBN</code> value directly, without checking, 
 947  
   * for this Product <code>Persistent</code>.
 948  
   * 
 949  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 950  
   * @param cooked  the pre-validated value to set
 951  
   */
 952  
   public void setISBN_unsafe(String cooked) {
 953  0
     ISBN = cooked;
 954  0
   }
 955  
 
 956  
  /**
 957  
   * Retrieves the ISBN value, with locking, for this 
 958  
   * <code>Product</code> <code>Persistent</code>.
 959  
   * Field description: 
 960  
   *   The ISBN number of this product (if any) 
 961  
   * 
 962  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
 963  
   * @throws AccessPoemException 
 964  
   *         if the current <code>AccessToken</code> 
 965  
   *         does not confer write access rights 
 966  
   * @return the value of the field <code>ISBN</code> for this 
 967  
   *         <code>Product</code> <code>Persistent</code>  
 968  
   */
 969  
 
 970  
   public String getISBN()
 971  
       throws AccessPoemException {
 972  0
     readLock();
 973  0
     return getISBN_unsafe();
 974  
   }
 975  
 
 976  
 
 977  
  /**
 978  
   * Sets the <code>ISBN</code> value, with checking, for this 
 979  
   * <code>Product</code> <code>Persistent</code>.
 980  
   * Field description: 
 981  
   *   The ISBN number of this product (if any) 
 982  
   * 
 983  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
 984  
   * @param cooked  a validated <code>int</code> 
 985  
   * @throws AccessPoemException 
 986  
   *         if the current <code>AccessToken</code> 
 987  
   *         does not confer write access rights
 988  
   * @throws ValidationPoemException 
 989  
   *         if the value is not valid
 990  
   */
 991  
   public void setISBN(String cooked)
 992  
       throws AccessPoemException, ValidationPoemException {
 993  0
     _getProductTable().getISBNColumn().
 994  
       getType().assertValidCooked(cooked);
 995  0
     writeLock();
 996  0
     setISBN_unsafe(cooked);
 997  0
   }
 998  
 
 999  
 
 1000  
  /**
 1001  
   * Retrieves the <code>ISBN</code> value as a <code>Field</code>
 1002  
   * from this <code>Product</code> <code>Persistent</code>.
 1003  
   * 
 1004  
   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
 1005  
   * @throws AccessPoemException 
 1006  
   *         if the current <code>AccessToken</code> 
 1007  
   *         does not confer write access rights
 1008  
   * @return the String ISBN
 1009  
   */
 1010  
   public Field<String> getISBNField() throws AccessPoemException {
 1011  0
     Column<String> c = _getProductTable().getISBNColumn();
 1012  0
     return new Field<String>((String)c.getRaw(this), c);
 1013  
   }
 1014  
 
 1015  
 
 1016  
  /**
 1017  
   * Retrieves the <code>Picture</code> value, without locking, 
 1018  
   * for this <code>Product</code> <code>Persistent</code>.
 1019  
   *
 1020  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 1021  
   * @return the String picture
 1022  
   */
 1023  
   public String getPicture_unsafe() {
 1024  0
     return picture;
 1025  
   }
 1026  
 
 1027  
 
 1028  
  /**
 1029  
   * Sets the <code>Picture</code> value directly, without checking, 
 1030  
   * for this Product <code>Persistent</code>.
 1031  
   * 
 1032  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 1033  
   * @param cooked  the pre-validated value to set
 1034  
   */
 1035  
   public void setPicture_unsafe(String cooked) {
 1036  0
     picture = cooked;
 1037  0
   }
 1038  
 
 1039  
  /**
 1040  
   * Retrieves the Picture value, with locking, for this 
 1041  
   * <code>Product</code> <code>Persistent</code>.
 1042  
   * Field description: 
 1043  
   *   A jacket cover image or similar 
 1044  
   * 
 1045  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
 1046  
   * @throws AccessPoemException 
 1047  
   *         if the current <code>AccessToken</code> 
 1048  
   *         does not confer write access rights 
 1049  
   * @return the value of the field <code>Picture</code> for this 
 1050  
   *         <code>Product</code> <code>Persistent</code>  
 1051  
   */
 1052  
 
 1053  
   public String getPicture()
 1054  
       throws AccessPoemException {
 1055  0
     readLock();
 1056  0
     return getPicture_unsafe();
 1057  
   }
 1058  
 
 1059  
 
 1060  
  /**
 1061  
   * Sets the <code>Picture</code> value, with checking, for this 
 1062  
   * <code>Product</code> <code>Persistent</code>.
 1063  
   * Field description: 
 1064  
   *   A jacket cover image or similar 
 1065  
   * 
 1066  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
 1067  
   * @param cooked  a validated <code>int</code> 
 1068  
   * @throws AccessPoemException 
 1069  
   *         if the current <code>AccessToken</code> 
 1070  
   *         does not confer write access rights
 1071  
   * @throws ValidationPoemException 
 1072  
   *         if the value is not valid
 1073  
   */
 1074  
   public void setPicture(String cooked)
 1075  
       throws AccessPoemException, ValidationPoemException {
 1076  0
     _getProductTable().getPictureColumn().
 1077  
       getType().assertValidCooked(cooked);
 1078  0
     writeLock();
 1079  0
     setPicture_unsafe(cooked);
 1080  0
   }
 1081  
 
 1082  
 
 1083  
  /**
 1084  
   * Retrieves the <code>Picture</code> value as a <code>Field</code>
 1085  
   * from this <code>Product</code> <code>Persistent</code>.
 1086  
   * 
 1087  
   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
 1088  
   * @throws AccessPoemException 
 1089  
   *         if the current <code>AccessToken</code> 
 1090  
   *         does not confer write access rights
 1091  
   * @return the String picture
 1092  
   */
 1093  
   public Field<String> getPictureField() throws AccessPoemException {
 1094  0
     Column<String> c = _getProductTable().getPictureColumn();
 1095  0
     return new Field<String>((String)c.getRaw(this), c);
 1096  
   }
 1097  
 
 1098  
 
 1099  
  /**
 1100  
   * Retrieves the <code>Deleted</code> value, without locking, 
 1101  
   * for this <code>Product</code> <code>Persistent</code>.
 1102  
   *
 1103  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 1104  
   * @return the Boolean deleted
 1105  
   */
 1106  
   public Boolean getDeleted_unsafe() {
 1107  0
     return deleted;
 1108  
   }
 1109  
 
 1110  
 
 1111  
  /**
 1112  
   * Sets the <code>Deleted</code> value directly, without checking, 
 1113  
   * for this Product <code>Persistent</code>.
 1114  
   * 
 1115  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 1116  
   * @param cooked  the pre-validated value to set
 1117  
   */
 1118  
   public void setDeleted_unsafe(Boolean cooked) {
 1119  0
     deleted = cooked;
 1120  0
   }
 1121  
 
 1122  
  /**
 1123  
   * Retrieves the Deleted value, with locking, for this 
 1124  
   * <code>Product</code> <code>Persistent</code>.
 1125  
   * 
 1126  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 
 1127  
   * @throws AccessPoemException 
 1128  
   *         if the current <code>AccessToken</code> 
 1129  
   *         does not confer write access rights 
 1130  
   * @return the value of the field <code>Deleted</code> for this 
 1131  
   *         <code>Product</code> <code>Persistent</code>  
 1132  
   */
 1133  
 
 1134  
   public Boolean getDeleted()
 1135  
       throws AccessPoemException {
 1136  0
     readLock();
 1137  0
     return getDeleted_unsafe();
 1138  
   }
 1139  
 
 1140  
 
 1141  
  /**
 1142  
   * Sets the <code>Deleted</code> value, with checking, for this 
 1143  
   * <code>Product</code> <code>Persistent</code>.
 1144  
   * 
 1145  
   * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods  
 1146  
   * @param cooked  a validated <code>int</code> 
 1147  
   * @throws AccessPoemException 
 1148  
   *         if the current <code>AccessToken</code> 
 1149  
   *         does not confer write access rights
 1150  
   * @throws ValidationPoemException 
 1151  
   *         if the value is not valid
 1152  
   */
 1153  
   public void setDeleted(Boolean cooked)
 1154  
       throws AccessPoemException, ValidationPoemException {
 1155  0
     _getProductTable().getDeletedColumn().
 1156  
       getType().assertValidCooked(cooked);
 1157  0
     writeLock();
 1158  0
     setDeleted_unsafe(cooked);
 1159  0
   }
 1160  
 
 1161  
  /**
 1162  
   * Sets the <code>Deleted</code> value, with checking, 
 1163  
   * from a <code>boolean</code>, for this 
 1164  
   * <code>Product</code> <code>Persistent</code>.
 1165  
   * 
 1166  
   * Generated by org.melati.poem.prepro.BooleanFieldDef#generateBaseMethods 
 1167  
   * @param cooked  a <code>boolean</code> 
 1168  
   * @throws AccessPoemException 
 1169  
   *         if the current <code>AccessToken</code> 
 1170  
   *         does not confer write access rights
 1171  
   * @throws ValidationPoemException 
 1172  
   *         if the value is not valid
 1173  
   */
 1174  
 
 1175  
   public final void setDeleted(boolean cooked)
 1176  
       throws AccessPoemException, ValidationPoemException {
 1177  0
     setDeleted(cooked ? Boolean.TRUE : Boolean.FALSE);
 1178  0
   }
 1179  
 
 1180  
 
 1181  
  /**
 1182  
   * Retrieves the <code>Deleted</code> value as a <code>Field</code>
 1183  
   * from this <code>Product</code> <code>Persistent</code>.
 1184  
   * 
 1185  
   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
 1186  
   * @throws AccessPoemException 
 1187  
   *         if the current <code>AccessToken</code> 
 1188  
   *         does not confer write access rights
 1189  
   * @return the Boolean deleted
 1190  
   */
 1191  
   public Field<Boolean> getDeletedField() throws AccessPoemException {
 1192  0
     Column<Boolean> c = _getProductTable().getDeletedColumn();
 1193  0
     return new Field<Boolean>((Boolean)c.getRaw(this), c);
 1194  
   }
 1195  
 
 1196  
 
 1197  
  /**
 1198  
   * Retrieves the <code>Format</code> value, without locking, 
 1199  
   * for this <code>Product</code> <code>Persistent</code>.
 1200  
   *
 1201  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 1202  
   * @return the Integer format
 1203  
   */
 1204  
   public Integer getFormat_unsafe() {
 1205  0
     return format;
 1206  
   }
 1207  
 
 1208  
 
 1209  
  /**
 1210  
   * Sets the <code>Format</code> value directly, without checking, 
 1211  
   * for this Product <code>Persistent</code>.
 1212  
   * 
 1213  
   * see org.melati.poem.prepro.FieldDef#generateBaseMethods 
 1214  
   * @param cooked  the pre-validated value to set
 1215  
   */
 1216  
   public void setFormat_unsafe(Integer cooked) {
 1217  0
     format = cooked;
 1218  0
   }
 1219  
 
 1220  
  /**
 1221  
   * Retrieves the Table Row Object ID. 
 1222  
   *
 1223  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 1224  
   * @throws AccessPoemException  
 1225  
   *         if the current <code>AccessToken</code> 
 1226  
   *         does not confer read access rights 
 1227  
   * @return the TROID as an <code>Integer</code> 
 1228  
   */
 1229  
 
 1230  
   public Integer getFormatTroid()
 1231  
       throws AccessPoemException {
 1232  0
     readLock();
 1233  0
     return getFormat_unsafe();
 1234  
   }
 1235  
 
 1236  
 
 1237  
  /**
 1238  
   * Sets the Table Row Object ID. 
 1239  
   * 
 1240  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 1241  
   * @param raw  a Table Row Object Id 
 1242  
   * @throws AccessPoemException  
 1243  
   *         if the current <code>AccessToken</code> 
 1244  
   *         does not confer write access rights
 1245  
   */
 1246  
   public void setFormatTroid(Integer raw)
 1247  
       throws AccessPoemException {
 1248  0
     setFormat(raw == null ? null : 
 1249  
         getBibliomaniaDatabaseTables().getBookFormatTable().getBookFormatObject(raw));
 1250  0
   }
 1251  
 
 1252  
 
 1253  
  /**
 1254  
   * Retrieves the <code>Format</code> object referred to.
 1255  
   *  
 1256  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 1257  
   * @throws AccessPoemException  
 1258  
   *         if the current <code>AccessToken</code> 
 1259  
   *         does not confer read access rights 
 1260  
   * @throws NoSuchRowPoemException  
 1261  
   *         if the <code>Persistent</code> has yet to be allocated a TROID 
 1262  
   * @return the <code>Format</code> as a <code>BookFormat</code> 
 1263  
   */
 1264  
   public BookFormat getFormat()
 1265  
       throws AccessPoemException, NoSuchRowPoemException {
 1266  0
     Integer troid = getFormatTroid();
 1267  0
     return troid == null ? null :
 1268  
         getBibliomaniaDatabaseTables().getBookFormatTable().getBookFormatObject(troid);
 1269  
   }
 1270  
 
 1271  
 
 1272  
  /**
 1273  
   * Set the Format.
 1274  
   * 
 1275  
   * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 
 1276  
   * @param cooked  a validated <code>BookFormat</code>
 1277  
   * @throws AccessPoemException  
 1278  
   *         if the current <code>AccessToken</code> 
 1279  
   *         does not confer write access rights 
 1280  
   */
 1281  
   public void setFormat(BookFormat cooked)
 1282  
       throws AccessPoemException {
 1283  0
     _getProductTable().
 1284  
       getFormatColumn().
 1285  
         getType().assertValidCooked(cooked);
 1286  0
     writeLock();
 1287  0
     if (cooked == null)
 1288  0
       setFormat_unsafe(null);
 1289  
     else {
 1290  0
       cooked.existenceLock();
 1291  0
       setFormat_unsafe(cooked.troid());
 1292  
     }
 1293  0
   }
 1294  
 
 1295  
 
 1296  
  /**
 1297  
   * Retrieves the <code>Format</code> value as a <code>Field</code>
 1298  
   * from this <code>Product</code> <code>Persistent</code>.
 1299  
   * 
 1300  
   * see org.melati.poem.prepro.FieldDef#generateFieldCreator 
 1301  
   * @throws AccessPoemException 
 1302  
   *         if the current <code>AccessToken</code> 
 1303  
   *         does not confer write access rights
 1304  
   * @return the Integer format
 1305  
   */
 1306  
   public Field<Integer> getFormatField() throws AccessPoemException {
 1307  0
     Column<Integer> c = _getProductTable().getFormatColumn();
 1308  0
     return new Field<Integer>((Integer)c.getRaw(this), c);
 1309  
   }
 1310  
 
 1311  0
   private CachedSelection<ProductAssociation> productProductAssociations = null;
 1312  
   /** References to this Product in the ProductAssociation table via its product field.*/
 1313  
   @SuppressWarnings("unchecked")
 1314  
   public Enumeration<ProductAssociation> getProductProductAssociations() {
 1315  0
     if (getTroid() == null)
 1316  0
       return new EmptyEnumeration<ProductAssociation>();
 1317  
     else {
 1318  0
       if (productProductAssociations == null)
 1319  0
         productProductAssociations =
 1320  
           getBibliomaniaDatabaseTables().getProductAssociationTable().getProductColumn().cachedSelectionWhereEq(getTroid());
 1321  0
       return productProductAssociations.objects();
 1322  
     }
 1323  
   }
 1324  
 
 1325  
 
 1326  
   /** References to this Product in the ProductAssociation table via its product field, as a List.*/
 1327  
   public List<ProductAssociation> getProductProductAssociationList() {
 1328  0
     return Collections.list(getProductProductAssociations());
 1329  
   }
 1330  
 
 1331  
 
 1332  
 
 1333  0
   private CachedSelection<SupplierProduct> productSupplierProducts = null;
 1334  
   /** References to this Product in the SupplierProduct table via its product field.*/
 1335  
   @SuppressWarnings("unchecked")
 1336  
   public Enumeration<SupplierProduct> getProductSupplierProducts() {
 1337  0
     if (getTroid() == null)
 1338  0
       return new EmptyEnumeration<SupplierProduct>();
 1339  
     else {
 1340  0
       if (productSupplierProducts == null)
 1341  0
         productSupplierProducts =
 1342  
           getBibliomaniaDatabaseTables().getSupplierProductTable().getProductColumn().cachedSelectionWhereEq(getTroid());
 1343  0
       return productSupplierProducts.objects();
 1344  
     }
 1345  
   }
 1346  
 
 1347  
 
 1348  
   /** References to this Product in the SupplierProduct table via its product field, as a List.*/
 1349  
   public List<SupplierProduct> getProductSupplierProductList() {
 1350  0
     return Collections.list(getProductSupplierProducts());
 1351  
   }
 1352  
 
 1353  
 
 1354  
 
 1355  0
   private CachedSelection<ShopOrderItem> productShopOrderItems = null;
 1356  
   /** References to this Product in the ShopOrderItem table via its product field.*/
 1357  
   @SuppressWarnings("unchecked")
 1358  
   public Enumeration<ShopOrderItem> getProductShopOrderItems() {
 1359  0
     if (getTroid() == null)
 1360  0
       return new EmptyEnumeration<ShopOrderItem>();
 1361  
     else {
 1362  0
       if (productShopOrderItems == null)
 1363  0
         productShopOrderItems =
 1364  
           getBibliomaniaDatabaseTables().getShopOrderItemTable().getProductColumn().cachedSelectionWhereEq(getTroid());
 1365  0
       return productShopOrderItems.objects();
 1366  
     }
 1367  
   }
 1368  
 
 1369  
 
 1370  
   /** References to this Product in the ShopOrderItem table via its product field, as a List.*/
 1371  
   public List<ShopOrderItem> getProductShopOrderItemList() {
 1372  0
     return Collections.list(getProductShopOrderItems());
 1373  
   }
 1374  
 
 1375  
 
 1376  
 
 1377  
 }
 1378