1 // Do not edit this file! It was generated by Melati POEM's DSD preprocessor.
2
3 package org.melati.example.odmg.generated;
4
5
6 import org.melati.example.odmg.Child;
7 import org.melati.example.odmg.ChildTable;
8 import org.melati.example.odmg.OdmgDatabaseTables;
9 import org.melati.example.odmg.Parent;
10 import org.melati.poem.AccessPoemException;
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
17
18 /**
19 * Melati POEM generated abstract base class for a <code>Persistent</code>
20 * <code>Child</code> Object.
21 *
22 * See org.melati.poem.prepro.TableDef#generatePersistentBaseJava
23 */
24 public abstract class ChildBase extends JdbcPersistent {
25
26
27 /**
28 * Retrieves the Database object.
29 *
30 * See org.melati.poem.prepro.TableDef#generatePersistentBaseJava
31 * @return the database
32 */
33 public OdmgDatabaseTables getOdmgDatabaseTables() {
34 return (OdmgDatabaseTables)getDatabase();
35 }
36
37
38 /**
39 * Retrieves the <code>ChildTable</code> table
40 * which this <code>Persistent</code> is from.
41 *
42 * See org.melati.poem.prepro.TableDef#generatePersistentBaseJava
43 * @return the ChildTable
44 */
45 @SuppressWarnings("unchecked")
46 public ChildTable<Child> getChildTable() {
47 return (ChildTable<Child>)getTable();
48 }
49
50 @SuppressWarnings("unchecked")
51 private ChildTable<Child> _getChildTable() {
52 return (ChildTable<Child>)getTable();
53 }
54
55 // Fields in this table
56 /**
57 * id
58 */
59 protected Integer id;
60 /**
61 * name
62 */
63 protected String name;
64 /**
65 * parent
66 */
67 protected Integer parent;
68
69
70 /**
71 * Retrieves the <code>Id</code> value, without locking,
72 * for this <code>Child</code> <code>Persistent</code>.
73 *
74 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
75 * @return the Integer id
76 */
77 public Integer getId_unsafe() {
78 return id;
79 }
80
81
82 /**
83 * Sets the <code>Id</code> value directly, without checking,
84 * for this Child <code>Persistent</code>.
85 *
86 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
87 * @param cooked the pre-validated value to set
88 */
89 public void setId_unsafe(Integer cooked) {
90 id = cooked;
91 }
92
93 /**
94 * Retrieves the Id value, with locking, for this
95 * <code>Child</code> <code>Persistent</code>.
96 *
97 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
98 * @throws AccessPoemException
99 * if the current <code>AccessToken</code>
100 * does not confer write access rights
101 * @return the value of the field <code>Id</code> for this
102 * <code>Child</code> <code>Persistent</code>
103 */
104
105 public Integer getId()
106 throws AccessPoemException {
107 readLock();
108 return getId_unsafe();
109 }
110
111
112 /**
113 * Sets the <code>Id</code> value, with checking, for this
114 * <code>Child</code> <code>Persistent</code>.
115 *
116 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
117 * @param cooked a validated <code>int</code>
118 * @throws AccessPoemException
119 * if the current <code>AccessToken</code>
120 * does not confer write access rights
121 * @throws ValidationPoemException
122 * if the value is not valid
123 */
124 public void setId(Integer cooked)
125 throws AccessPoemException, ValidationPoemException {
126 _getChildTable().getIdColumn().
127 getType().assertValidCooked(cooked);
128 writeLock();
129 setId_unsafe(cooked);
130 }
131
132 /**
133 * Sets the <code>Id</code> value, with checking, for this
134 * <code>Child</code> <code>Persistent</code>.
135 *
136 * Generated by org.melati.poem.prepro.IntegerFieldDef#generateBaseMethods
137 * @param cooked a validated <code>int</code>
138 * @throws AccessPoemException
139 * if the current <code>AccessToken</code>
140 * does not confer write access rights
141 * @throws ValidationPoemException
142 * if the value is not valid
143 */
144
145 public final void setId(int cooked)
146 throws AccessPoemException, ValidationPoemException {
147 setId(new Integer(cooked));
148 }
149
150
151 /**
152 * Retrieves the <code>Id</code> value as a <code>Field</code>
153 * from this <code>Child</code> <code>Persistent</code>.
154 *
155 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
156 * @throws AccessPoemException
157 * if the current <code>AccessToken</code>
158 * does not confer write access rights
159 * @return the Integer id
160 */
161 public Field<Integer> getIdField() throws AccessPoemException {
162 Column<Integer> c = _getChildTable().getIdColumn();
163 return new Field<Integer>((Integer)c.getRaw(this), c);
164 }
165
166
167 /**
168 * Retrieves the <code>Name</code> value, without locking,
169 * for this <code>Child</code> <code>Persistent</code>.
170 *
171 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
172 * @return the String name
173 */
174 public String getName_unsafe() {
175 return name;
176 }
177
178
179 /**
180 * Sets the <code>Name</code> value directly, without checking,
181 * for this Child <code>Persistent</code>.
182 *
183 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
184 * @param cooked the pre-validated value to set
185 */
186 public void setName_unsafe(String cooked) {
187 name = cooked;
188 }
189
190 /**
191 * Retrieves the Name value, with locking, for this
192 * <code>Child</code> <code>Persistent</code>.
193 *
194 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
195 * @throws AccessPoemException
196 * if the current <code>AccessToken</code>
197 * does not confer write access rights
198 * @return the value of the field <code>Name</code> for this
199 * <code>Child</code> <code>Persistent</code>
200 */
201
202 public String getName()
203 throws AccessPoemException {
204 readLock();
205 return getName_unsafe();
206 }
207
208
209 /**
210 * Sets the <code>Name</code> value, with checking, for this
211 * <code>Child</code> <code>Persistent</code>.
212 *
213 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods
214 * @param cooked a validated <code>int</code>
215 * @throws AccessPoemException
216 * if the current <code>AccessToken</code>
217 * does not confer write access rights
218 * @throws ValidationPoemException
219 * if the value is not valid
220 */
221 public void setName(String cooked)
222 throws AccessPoemException, ValidationPoemException {
223 _getChildTable().getNameColumn().
224 getType().assertValidCooked(cooked);
225 writeLock();
226 setName_unsafe(cooked);
227 }
228
229
230 /**
231 * Retrieves the <code>Name</code> value as a <code>Field</code>
232 * from this <code>Child</code> <code>Persistent</code>.
233 *
234 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
235 * @throws AccessPoemException
236 * if the current <code>AccessToken</code>
237 * does not confer write access rights
238 * @return the String name
239 */
240 public Field<String> getNameField() throws AccessPoemException {
241 Column<String> c = _getChildTable().getNameColumn();
242 return new Field<String>((String)c.getRaw(this), c);
243 }
244
245
246 /**
247 * Retrieves the <code>Parent</code> value, without locking,
248 * for this <code>Child</code> <code>Persistent</code>.
249 *
250 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
251 * @return the Integer parent
252 */
253 public Integer getParent_unsafe() {
254 return parent;
255 }
256
257
258 /**
259 * Sets the <code>Parent</code> value directly, without checking,
260 * for this Child <code>Persistent</code>.
261 *
262 * see org.melati.poem.prepro.FieldDef#generateBaseMethods
263 * @param cooked the pre-validated value to set
264 */
265 public void setParent_unsafe(Integer cooked) {
266 parent = cooked;
267 }
268
269 /**
270 * Retrieves the Table Row Object ID.
271 *
272 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
273 * @throws AccessPoemException
274 * if the current <code>AccessToken</code>
275 * does not confer read access rights
276 * @return the TROID as an <code>Integer</code>
277 */
278
279 public Integer getParentTroid()
280 throws AccessPoemException {
281 readLock();
282 return getParent_unsafe();
283 }
284
285
286 /**
287 * Sets the Table Row Object ID.
288 *
289 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
290 * @param raw a Table Row Object Id
291 * @throws AccessPoemException
292 * if the current <code>AccessToken</code>
293 * does not confer write access rights
294 */
295 public void setParentTroid(Integer raw)
296 throws AccessPoemException {
297 setParent(raw == null ? null :
298 getOdmgDatabaseTables().getParentTable().getParentObject(raw));
299 }
300
301
302 /**
303 * Retrieves the <code>Parent</code> object referred to.
304 *
305 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
306 * @throws AccessPoemException
307 * if the current <code>AccessToken</code>
308 * does not confer read access rights
309 * @throws NoSuchRowPoemException
310 * if the <code>Persistent</code> has yet to be allocated a TROID
311 * @return the <code>Parent</code> as a <code>Parent</code>
312 */
313 public Parent getParent()
314 throws AccessPoemException, NoSuchRowPoemException {
315 Integer troid = getParentTroid();
316 return troid == null ? null :
317 getOdmgDatabaseTables().getParentTable().getParentObject(troid);
318 }
319
320
321 /**
322 * Set the Parent.
323 *
324 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods
325 * @param cooked a validated <code>Parent</code>
326 * @throws AccessPoemException
327 * if the current <code>AccessToken</code>
328 * does not confer write access rights
329 */
330 public void setParent(Parent cooked)
331 throws AccessPoemException {
332 _getChildTable().
333 getParentColumn().
334 getType().assertValidCooked(cooked);
335 writeLock();
336 if (cooked == null)
337 setParent_unsafe(null);
338 else {
339 cooked.existenceLock();
340 setParent_unsafe(cooked.troid());
341 }
342 }
343
344
345 /**
346 * Retrieves the <code>Parent</code> value as a <code>Field</code>
347 * from this <code>Child</code> <code>Persistent</code>.
348 *
349 * see org.melati.poem.prepro.FieldDef#generateFieldCreator
350 * @throws AccessPoemException
351 * if the current <code>AccessToken</code>
352 * does not confer write access rights
353 * @return the Integer parent
354 */
355 public Field<Integer> getParentField() throws AccessPoemException {
356 Column<Integer> c = _getChildTable().getParentColumn();
357 return new Field<Integer>((Integer)c.getRaw(this), c);
358 }
359
360 }
361