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.Country;
19 import org.paneris.bibliomania.CountryTable;
20 import org.paneris.bibliomania.DeliveryChargeBand;
21 import org.paneris.bibliomania.ShopOrder;
22
23
24 /**
25 * Melati POEM generated abstract base class for a <code>Persistent</code>
26 * <code>Country</code> Object.
27 *
28 * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava
29 */
30 public abstract class CountryBase extends JdbcPersistent {
31
32
33 /**
34 * Retrieves the Database object.
35 *
36 * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava
37 * @return the database
38 */
39 public BibliomaniaDatabaseTables getBibliomaniaDatabaseTables() {
40 return (BibliomaniaDatabaseTables)getDatabase();
41 }
42
43
44 /**
45 * Retrieves the <code>CountryTable</code> table
46 * which this <code>Persistent</code> is from.
47 *
48 * see org.melati.poem.prepro.TableDef#generatePersistentBaseJava
49 * @return the CountryTable
50 */
51 @SuppressWarnings("unchecked")
52 public CountryTable<Country> getCountryTable() {
53 return (CountryTable<Country>)getTable();
54 }
55
56 @SuppressWarnings("unchecked")
57 private CountryTable<Country> _getCountryTable() {
58 return (CountryTable<Country>)getTable();
59 }
60
61 // Fields in this table
62 /**
63 * id
64 */
65 protected Integer id;
66 /**
67 * Display name - The country's name
68 */
69 protected String displayname;
70 /**
71 * Delivery Charge Band
72 */
73 protected Integer deliverycharge;
74
75
76 /**
77 * Retrieves the <code>Id</code> value, without locking,
78 * for this <code>Country</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 Country <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>Country</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>Country</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>Country</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 _getCountryTable().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>Country</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>Country</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 = _getCountryTable().getIdColumn();
169 return new Field<Integer>((Integer)c.getRaw(this), c);
170 }
171
172
173 /**
174 * Retrieves the <code>Displayname</code> value, without locking,
175 * for this <code>Country</code> <code>Persistent</code>.
176 *
177 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
178 * @return the String displayname
179 */
180 public String getDisplayname_unsafe() {
181 return displayname;
182 }
183
184
185 /**
186 * Sets the <code>Displayname</code> value directly, without checking,
187 * for this Country <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 setDisplayname_unsafe(String cooked) {
193 displayname = cooked;
194 }
195
196 /**
197 * Retrieves the Displayname value, with locking, for this
198 * <code>Country</code> <code>Persistent</code>.
199 * Field description:
200 * The country's name
201 *
202 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
203 * @throws AccessPoemException
204 * if the current <code>AccessToken</code>
205 * does not confer write access rights
206 * @return the value of the field <code>Displayname</code> for this
207 * <code>Country</code> <code>Persistent</code>
208 */
209
210 public String getDisplayname()
211 throws AccessPoemException {
212 readLock();
213 return getDisplayname_unsafe();
214 }
215
216
217 /**
218 * Sets the <code>Displayname</code> value, with checking, for this
219 * <code>Country</code> <code>Persistent</code>.
220 * Field description:
221 * The country's name
222 *
223 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
224 * @param cooked a validated <code>int</code>
225 * @throws AccessPoemException
226 * if the current <code>AccessToken</code>
227 * does not confer write access rights
228 * @throws ValidationPoemException
229 * if the value is not valid
230 */
231 public void setDisplayname(String cooked)
232 throws AccessPoemException, ValidationPoemException {
233 _getCountryTable().getDisplaynameColumn().
234 getType().assertValidCooked(cooked);
235 writeLock();
236 setDisplayname_unsafe(cooked);
237 }
238
239
240 /**
241 * Retrieves the <code>Displayname</code> value as a <code>Field</code>
242 * from this <code>Country</code> <code>Persistent</code>.
243 *
244 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
245 * @throws AccessPoemException
246 * if the current <code>AccessToken</code>
247 * does not confer write access rights
248 * @return the String displayname
249 */
250 public Field<String> getDisplaynameField() throws AccessPoemException {
251 Column<String> c = _getCountryTable().getDisplaynameColumn();
252 return new Field<String>((String)c.getRaw(this), c);
253 }
254
255
256 /**
257 * Retrieves the <code>Deliverycharge</code> value, without locking,
258 * for this <code>Country</code> <code>Persistent</code>.
259 *
260 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
261 * @return the Integer deliverycharge
262 */
263 public Integer getDeliverycharge_unsafe() {
264 return deliverycharge;
265 }
266
267
268 /**
269 * Sets the <code>Deliverycharge</code> value directly, without checking,
270 * for this Country <code>Persistent</code>.
271 *
272 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
273 * @param cooked the pre-validated value to set
274 */
275 public void setDeliverycharge_unsafe(Integer cooked) {
276 deliverycharge = cooked;
277 }
278
279 /**
280 * Retrieves the Table Row Object ID.
281 *
282 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
283 * @throws AccessPoemException
284 * if the current <code>AccessToken</code>
285 * does not confer read access rights
286 * @return the TROID as an <code>Integer</code>
287 */
288
289 public Integer getDeliverychargeTroid()
290 throws AccessPoemException {
291 readLock();
292 return getDeliverycharge_unsafe();
293 }
294
295
296 /**
297 * Sets the Table Row Object ID.
298 *
299 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
300 * @param raw a Table Row Object Id
301 * @throws AccessPoemException
302 * if the current <code>AccessToken</code>
303 * does not confer write access rights
304 */
305 public void setDeliverychargeTroid(Integer raw)
306 throws AccessPoemException {
307 setDeliverycharge(raw == null ? null :
308 getBibliomaniaDatabaseTables().getDeliveryChargeBandTable().getDeliveryChargeBandObject(raw));
309 }
310
311
312 /**
313 * Retrieves the <code>Deliverycharge</code> object referred to.
314 *
315 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
316 * @throws AccessPoemException
317 * if the current <code>AccessToken</code>
318 * does not confer read access rights
319 * @throws NoSuchRowPoemException
320 * if the <code>Persistent</code> has yet to be allocated a TROID
321 * @return the <code>Deliverycharge</code> as a <code>DeliveryChargeBand</code>
322 */
323 public DeliveryChargeBand getDeliverycharge()
324 throws AccessPoemException, NoSuchRowPoemException {
325 Integer troid = getDeliverychargeTroid();
326 return troid == null ? null :
327 getBibliomaniaDatabaseTables().getDeliveryChargeBandTable().getDeliveryChargeBandObject(troid);
328 }
329
330
331 /**
332 * Set the Deliverycharge.
333 *
334 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
335 * @param cooked a validated <code>DeliveryChargeBand</code>
336 * @throws AccessPoemException
337 * if the current <code>AccessToken</code>
338 * does not confer write access rights
339 */
340 public void setDeliverycharge(DeliveryChargeBand cooked)
341 throws AccessPoemException {
342 _getCountryTable().
343 getDeliverychargeColumn().
344 getType().assertValidCooked(cooked);
345 writeLock();
346 if (cooked == null)
347 setDeliverycharge_unsafe(null);
348 else {
349 cooked.existenceLock();
350 setDeliverycharge_unsafe(cooked.troid());
351 }
352 }
353
354
355 /**
356 * Retrieves the <code>Deliverycharge</code> value as a <code>Field</code>
357 * from this <code>Country</code> <code>Persistent</code>.
358 *
359 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
360 * @throws AccessPoemException
361 * if the current <code>AccessToken</code>
362 * does not confer write access rights
363 * @return the Integer deliverycharge
364 */
365 public Field<Integer> getDeliverychargeField() throws AccessPoemException {
366 Column<Integer> c = _getCountryTable().getDeliverychargeColumn();
367 return new Field<Integer>((Integer)c.getRaw(this), c);
368 }
369
370 private CachedSelection<ShopOrder> countryShopOrders = null;
371 /** References to this Country in the ShopOrder table via its country field.*/
372 @SuppressWarnings("unchecked")
373 public Enumeration<ShopOrder> getCountryShopOrders() {
374 if (getTroid() == null)
375 return new EmptyEnumeration<ShopOrder>();
376 else {
377 if (countryShopOrders == null)
378 countryShopOrders =
379 getBibliomaniaDatabaseTables().getShopOrderTable().getCountryColumn().cachedSelectionWhereEq(getTroid());
380 return countryShopOrders.objects();
381 }
382 }
383
384
385 /** References to this Country in the ShopOrder table via its country field, as a List.*/
386 public List<ShopOrder> getCountryShopOrderList() {
387 return Collections.list(getCountryShopOrders());
388 }
389
390
391
392 }
393