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 java.util.Collections; 7 import java.util.Enumeration; 8 import java.util.List; 9 import org.melati.example.odmg.Child; 10 import org.melati.example.odmg.OdmgDatabaseTables; 11 import org.melati.example.odmg.Parent; 12 import org.melati.example.odmg.ParentTable; 13 import org.melati.poem.AccessPoemException; 14 import org.melati.poem.CachedSelection; 15 import org.melati.poem.Column; 16 import org.melati.poem.Field; 17 import org.melati.poem.JdbcPersistent; 18 import org.melati.poem.ValidationPoemException; 19 import org.melati.poem.util.EmptyEnumeration; 20 21 22 /** 23 * Melati POEM generated abstract base class for a <code>Persistent</code> 24 * <code>Parent</code> Object. 25 * 26 * See org.melati.poem.prepro.TableDef#generatePersistentBaseJava 27 */ 28 public abstract class ParentBase extends JdbcPersistent { 29 30 31 /** 32 * Retrieves the Database object. 33 * 34 * See org.melati.poem.prepro.TableDef#generatePersistentBaseJava 35 * @return the database 36 */ 37 public OdmgDatabaseTables getOdmgDatabaseTables() { 38 return (OdmgDatabaseTables)getDatabase(); 39 } 40 41 42 /** 43 * Retrieves the <code>ParentTable</code> table 44 * which this <code>Persistent</code> is from. 45 * 46 * See org.melati.poem.prepro.TableDef#generatePersistentBaseJava 47 * @return the ParentTable 48 */ 49 @SuppressWarnings("unchecked") 50 public ParentTable<Parent> getParentTable() { 51 return (ParentTable<Parent>)getTable(); 52 } 53 54 @SuppressWarnings("unchecked") 55 private ParentTable<Parent> _getParentTable() { 56 return (ParentTable<Parent>)getTable(); 57 } 58 59 // Fields in this table 60 /** 61 * id 62 */ 63 protected Integer id; 64 /** 65 * name 66 */ 67 protected String name; 68 69 70 /** 71 * Retrieves the <code>Id</code> value, without locking, 72 * for this <code>Parent</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 Parent <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>Parent</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>Parent</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>Parent</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 _getParentTable().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>Parent</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>Parent</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 = _getParentTable().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>Parent</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 Parent <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>Parent</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>Parent</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>Parent</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 _getParentTable().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>Parent</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 = _getParentTable().getNameColumn(); 242 return new Field<String>((String)c.getRaw(this), c); 243 } 244 245 private CachedSelection<Child> parentChilds = null; 246 /** References to this Parent in the Child table via its parent field.*/ 247 @SuppressWarnings("unchecked") 248 public Enumeration<Child> getParentChilds() { 249 if (getTroid() == null) 250 return new EmptyEnumeration<Child>(); 251 else { 252 if (parentChilds == null) 253 parentChilds = 254 getOdmgDatabaseTables().getChildTable().getParentColumn().cachedSelectionWhereEq(getTroid()); 255 return parentChilds.objects(); 256 } 257 } 258 259 260 /** References to this Parent in the Child table via its parent field, as a List.*/ 261 public List<Child> getParentChildList() { 262 return Collections.list(getParentChilds()); 263 } 264 265 266 267 } 268