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