1 // Do not edit this file! It was generated by Melati POEM's DSD preprocessor. 2 3 package org.melati.example.contacts.generated; 4 5 6 import java.sql.Date; 7 import java.util.Collections; 8 import java.util.Enumeration; 9 import java.util.List; 10 import org.melati.example.contacts.Contact; 11 import org.melati.example.contacts.ContactCategory; 12 import org.melati.example.contacts.ContactTable; 13 import org.melati.example.contacts.ContactsDatabaseTables; 14 import org.melati.poem.AccessPoemException; 15 import org.melati.poem.CachedSelection; 16 import org.melati.poem.Column; 17 import org.melati.poem.Field; 18 import org.melati.poem.JdbcPersistent; 19 import org.melati.poem.NoSuchRowPoemException; 20 import org.melati.poem.User; 21 import org.melati.poem.ValidationPoemException; 22 import org.melati.poem.util.EmptyEnumeration; 23 24 25 /** 26 * Melati POEM generated abstract base class for a <code>Persistent</code> 27 * <code>Contact</code> Object. 28 * 29 * See org.melati.poem.prepro.TableDef#generatePersistentBaseJava 30 */ 31 public abstract class ContactBase extends JdbcPersistent { 32 33 34 /** 35 * Retrieves the Database object. 36 * 37 * See org.melati.poem.prepro.TableDef#generatePersistentBaseJava 38 * @return the database 39 */ 40 public ContactsDatabaseTables getContactsDatabaseTables() { 41 return (ContactsDatabaseTables)getDatabase(); 42 } 43 44 45 /** 46 * Retrieves the <code>ContactTable</code> table 47 * which this <code>Persistent</code> is from. 48 * 49 * See org.melati.poem.prepro.TableDef#generatePersistentBaseJava 50 * @return the ContactTable 51 */ 52 @SuppressWarnings("unchecked") 53 public ContactTable<Contact> getContactTable() { 54 return (ContactTable<Contact>)getTable(); 55 } 56 57 @SuppressWarnings("unchecked") 58 private ContactTable<Contact> _getContactTable() { 59 return (ContactTable<Contact>)getTable(); 60 } 61 62 // Fields in this table 63 /** 64 * id 65 */ 66 protected Integer id; 67 /** 68 * name - Contact Name 69 */ 70 protected String name; 71 /** 72 * owner - Contact who owns this contact 73 */ 74 protected Integer owner; 75 /** 76 * address - Contact Address 77 */ 78 protected String address; 79 /** 80 * updates - How many times has this record been updated? 81 */ 82 protected Integer updates; 83 /** 84 * lastupdated - When was this last updated? 85 */ 86 protected Date lastupdated; 87 /** 88 * lastupdateuser - Who last updated this? 89 */ 90 protected Integer lastupdateuser; 91 92 93 /** 94 * Retrieves the <code>Id</code> value, without locking, 95 * for this <code>Contact</code> <code>Persistent</code>. 96 * 97 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 98 * @return the Integer id 99 */ 100 public Integer getId_unsafe() { 101 return id; 102 } 103 104 105 /** 106 * Sets the <code>Id</code> value directly, without checking, 107 * for this Contact <code>Persistent</code>. 108 * 109 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 110 * @param cooked the pre-validated value to set 111 */ 112 public void setId_unsafe(Integer cooked) { 113 id = cooked; 114 } 115 116 /** 117 * Retrieves the Id value, with locking, for this 118 * <code>Contact</code> <code>Persistent</code>. 119 * 120 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 121 * @throws AccessPoemException 122 * if the current <code>AccessToken</code> 123 * does not confer write access rights 124 * @return the value of the field <code>Id</code> for this 125 * <code>Contact</code> <code>Persistent</code> 126 */ 127 128 public Integer getId() 129 throws AccessPoemException { 130 readLock(); 131 return getId_unsafe(); 132 } 133 134 135 /** 136 * Sets the <code>Id</code> value, with checking, for this 137 * <code>Contact</code> <code>Persistent</code>. 138 * 139 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 140 * @param cooked a validated <code>int</code> 141 * @throws AccessPoemException 142 * if the current <code>AccessToken</code> 143 * does not confer write access rights 144 * @throws ValidationPoemException 145 * if the value is not valid 146 */ 147 public void setId(Integer cooked) 148 throws AccessPoemException, ValidationPoemException { 149 _getContactTable().getIdColumn(). 150 getType().assertValidCooked(cooked); 151 writeLock(); 152 setId_unsafe(cooked); 153 } 154 155 /** 156 * Sets the <code>Id</code> value, with checking, for this 157 * <code>Contact</code> <code>Persistent</code>. 158 * 159 * Generated by org.melati.poem.prepro.IntegerFieldDef#generateBaseMethods 160 * @param cooked a validated <code>int</code> 161 * @throws AccessPoemException 162 * if the current <code>AccessToken</code> 163 * does not confer write access rights 164 * @throws ValidationPoemException 165 * if the value is not valid 166 */ 167 168 public final void setId(int cooked) 169 throws AccessPoemException, ValidationPoemException { 170 setId(new Integer(cooked)); 171 } 172 173 174 /** 175 * Retrieves the <code>Id</code> value as a <code>Field</code> 176 * from this <code>Contact</code> <code>Persistent</code>. 177 * 178 * see org.melati.poem.prepro.FieldDef#generateFieldCreator 179 * @throws AccessPoemException 180 * if the current <code>AccessToken</code> 181 * does not confer write access rights 182 * @return the Integer id 183 */ 184 public Field<Integer> getIdField() throws AccessPoemException { 185 Column<Integer> c = _getContactTable().getIdColumn(); 186 return new Field<Integer>((Integer)c.getRaw(this), c); 187 } 188 189 190 /** 191 * Retrieves the <code>Name</code> value, without locking, 192 * for this <code>Contact</code> <code>Persistent</code>. 193 * 194 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 195 * @return the String name 196 */ 197 public String getName_unsafe() { 198 return name; 199 } 200 201 202 /** 203 * Sets the <code>Name</code> value directly, without checking, 204 * for this Contact <code>Persistent</code>. 205 * 206 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 207 * @param cooked the pre-validated value to set 208 */ 209 public void setName_unsafe(String cooked) { 210 name = cooked; 211 } 212 213 /** 214 * Retrieves the Name value, with locking, for this 215 * <code>Contact</code> <code>Persistent</code>. 216 * Field description: 217 * Contact Name 218 * 219 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 220 * @throws AccessPoemException 221 * if the current <code>AccessToken</code> 222 * does not confer write access rights 223 * @return the value of the field <code>Name</code> for this 224 * <code>Contact</code> <code>Persistent</code> 225 */ 226 227 public String getName() 228 throws AccessPoemException { 229 readLock(); 230 return getName_unsafe(); 231 } 232 233 234 /** 235 * Sets the <code>Name</code> value, with checking, for this 236 * <code>Contact</code> <code>Persistent</code>. 237 * Field description: 238 * Contact Name 239 * 240 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 241 * @param cooked a validated <code>int</code> 242 * @throws AccessPoemException 243 * if the current <code>AccessToken</code> 244 * does not confer write access rights 245 * @throws ValidationPoemException 246 * if the value is not valid 247 */ 248 public void setName(String cooked) 249 throws AccessPoemException, ValidationPoemException { 250 _getContactTable().getNameColumn(). 251 getType().assertValidCooked(cooked); 252 writeLock(); 253 setName_unsafe(cooked); 254 } 255 256 257 /** 258 * Retrieves the <code>Name</code> value as a <code>Field</code> 259 * from this <code>Contact</code> <code>Persistent</code>. 260 * 261 * see org.melati.poem.prepro.FieldDef#generateFieldCreator 262 * @throws AccessPoemException 263 * if the current <code>AccessToken</code> 264 * does not confer write access rights 265 * @return the String name 266 */ 267 public Field<String> getNameField() throws AccessPoemException { 268 Column<String> c = _getContactTable().getNameColumn(); 269 return new Field<String>((String)c.getRaw(this), c); 270 } 271 272 273 /** 274 * Retrieves the <code>Owner</code> value, without locking, 275 * for this <code>Contact</code> <code>Persistent</code>. 276 * 277 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 278 * @return the Integer owner 279 */ 280 public Integer getOwner_unsafe() { 281 return owner; 282 } 283 284 285 /** 286 * Sets the <code>Owner</code> value directly, without checking, 287 * for this Contact <code>Persistent</code>. 288 * 289 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 290 * @param cooked the pre-validated value to set 291 */ 292 public void setOwner_unsafe(Integer cooked) { 293 owner = cooked; 294 } 295 296 /** 297 * Retrieves the Table Row Object ID. 298 * 299 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 300 * @throws AccessPoemException 301 * if the current <code>AccessToken</code> 302 * does not confer read access rights 303 * @return the TROID as an <code>Integer</code> 304 */ 305 306 public Integer getOwnerTroid() 307 throws AccessPoemException { 308 readLock(); 309 return getOwner_unsafe(); 310 } 311 312 313 /** 314 * Sets the Table Row Object ID. 315 * 316 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 317 * @param raw a Table Row Object Id 318 * @throws AccessPoemException 319 * if the current <code>AccessToken</code> 320 * does not confer write access rights 321 */ 322 public void setOwnerTroid(Integer raw) 323 throws AccessPoemException { 324 setOwner(raw == null ? null : 325 getContactsDatabaseTables().getContactTable().getContactObject(raw)); 326 } 327 328 329 /** 330 * Retrieves the <code>Owner</code> object referred to. 331 * 332 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 333 * @throws AccessPoemException 334 * if the current <code>AccessToken</code> 335 * does not confer read access rights 336 * @throws NoSuchRowPoemException 337 * if the <code>Persistent</code> has yet to be allocated a TROID 338 * @return the <code>Owner</code> as a <code>Contact</code> 339 */ 340 public Contact getOwner() 341 throws AccessPoemException, NoSuchRowPoemException { 342 Integer troid = getOwnerTroid(); 343 return troid == null ? null : 344 getContactsDatabaseTables().getContactTable().getContactObject(troid); 345 } 346 347 348 /** 349 * Set the Owner. 350 * 351 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 352 * @param cooked a validated <code>Contact</code> 353 * @throws AccessPoemException 354 * if the current <code>AccessToken</code> 355 * does not confer write access rights 356 */ 357 public void setOwner(Contact cooked) 358 throws AccessPoemException { 359 _getContactTable(). 360 getOwnerColumn(). 361 getType().assertValidCooked(cooked); 362 writeLock(); 363 if (cooked == null) 364 setOwner_unsafe(null); 365 else { 366 cooked.existenceLock(); 367 setOwner_unsafe(cooked.troid()); 368 } 369 } 370 371 372 /** 373 * Retrieves the <code>Owner</code> value as a <code>Field</code> 374 * from this <code>Contact</code> <code>Persistent</code>. 375 * 376 * see org.melati.poem.prepro.FieldDef#generateFieldCreator 377 * @throws AccessPoemException 378 * if the current <code>AccessToken</code> 379 * does not confer write access rights 380 * @return the Integer owner 381 */ 382 public Field<Integer> getOwnerField() throws AccessPoemException { 383 Column<Integer> c = _getContactTable().getOwnerColumn(); 384 return new Field<Integer>((Integer)c.getRaw(this), c); 385 } 386 387 388 /** 389 * Retrieves the <code>Address</code> value, without locking, 390 * for this <code>Contact</code> <code>Persistent</code>. 391 * 392 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 393 * @return the String address 394 */ 395 public String getAddress_unsafe() { 396 return address; 397 } 398 399 400 /** 401 * Sets the <code>Address</code> value directly, without checking, 402 * for this Contact <code>Persistent</code>. 403 * 404 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 405 * @param cooked the pre-validated value to set 406 */ 407 public void setAddress_unsafe(String cooked) { 408 address = cooked; 409 } 410 411 /** 412 * Retrieves the Address value, with locking, for this 413 * <code>Contact</code> <code>Persistent</code>. 414 * Field description: 415 * Contact Address 416 * 417 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 418 * @throws AccessPoemException 419 * if the current <code>AccessToken</code> 420 * does not confer write access rights 421 * @return the value of the field <code>Address</code> for this 422 * <code>Contact</code> <code>Persistent</code> 423 */ 424 425 public String getAddress() 426 throws AccessPoemException { 427 readLock(); 428 return getAddress_unsafe(); 429 } 430 431 432 /** 433 * Sets the <code>Address</code> value, with checking, for this 434 * <code>Contact</code> <code>Persistent</code>. 435 * Field description: 436 * Contact Address 437 * 438 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 439 * @param cooked a validated <code>int</code> 440 * @throws AccessPoemException 441 * if the current <code>AccessToken</code> 442 * does not confer write access rights 443 * @throws ValidationPoemException 444 * if the value is not valid 445 */ 446 public void setAddress(String cooked) 447 throws AccessPoemException, ValidationPoemException { 448 _getContactTable().getAddressColumn(). 449 getType().assertValidCooked(cooked); 450 writeLock(); 451 setAddress_unsafe(cooked); 452 } 453 454 455 /** 456 * Retrieves the <code>Address</code> value as a <code>Field</code> 457 * from this <code>Contact</code> <code>Persistent</code>. 458 * 459 * see org.melati.poem.prepro.FieldDef#generateFieldCreator 460 * @throws AccessPoemException 461 * if the current <code>AccessToken</code> 462 * does not confer write access rights 463 * @return the String address 464 */ 465 public Field<String> getAddressField() throws AccessPoemException { 466 Column<String> c = _getContactTable().getAddressColumn(); 467 return new Field<String>((String)c.getRaw(this), c); 468 } 469 470 471 /** 472 * Retrieves the <code>Updates</code> value, without locking, 473 * for this <code>Contact</code> <code>Persistent</code>. 474 * 475 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 476 * @return the Integer updates 477 */ 478 public Integer getUpdates_unsafe() { 479 return updates; 480 } 481 482 483 /** 484 * Sets the <code>Updates</code> value directly, without checking, 485 * for this Contact <code>Persistent</code>. 486 * 487 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 488 * @param cooked the pre-validated value to set 489 */ 490 public void setUpdates_unsafe(Integer cooked) { 491 updates = cooked; 492 } 493 494 /** 495 * Retrieves the Updates value, with locking, for this 496 * <code>Contact</code> <code>Persistent</code>. 497 * Field description: 498 * How many times has this record been updated? 499 * 500 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 501 * @throws AccessPoemException 502 * if the current <code>AccessToken</code> 503 * does not confer write access rights 504 * @return the value of the field <code>Updates</code> for this 505 * <code>Contact</code> <code>Persistent</code> 506 */ 507 508 public Integer getUpdates() 509 throws AccessPoemException { 510 readLock(); 511 return getUpdates_unsafe(); 512 } 513 514 515 /** 516 * Sets the <code>Updates</code> value, with checking, for this 517 * <code>Contact</code> <code>Persistent</code>. 518 * Field description: 519 * How many times has this record been updated? 520 * 521 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 522 * @param cooked a validated <code>int</code> 523 * @throws AccessPoemException 524 * if the current <code>AccessToken</code> 525 * does not confer write access rights 526 * @throws ValidationPoemException 527 * if the value is not valid 528 */ 529 public void setUpdates(Integer cooked) 530 throws AccessPoemException, ValidationPoemException { 531 _getContactTable().getUpdatesColumn(). 532 getType().assertValidCooked(cooked); 533 writeLock(); 534 setUpdates_unsafe(cooked); 535 } 536 537 /** 538 * Sets the <code>Updates</code> value, with checking, for this 539 * <code>Contact</code> <code>Persistent</code>. 540 * Field description: 541 * How many times has this record been updated? 542 * 543 * 544 * Generated by org.melati.poem.prepro.IntegerFieldDef#generateBaseMethods 545 * @param cooked a validated <code>int</code> 546 * @throws AccessPoemException 547 * if the current <code>AccessToken</code> 548 * does not confer write access rights 549 * @throws ValidationPoemException 550 * if the value is not valid 551 */ 552 553 public final void setUpdates(int cooked) 554 throws AccessPoemException, ValidationPoemException { 555 setUpdates(new Integer(cooked)); 556 } 557 558 559 /** 560 * Retrieves the <code>Updates</code> value as a <code>Field</code> 561 * from this <code>Contact</code> <code>Persistent</code>. 562 * 563 * see org.melati.poem.prepro.FieldDef#generateFieldCreator 564 * @throws AccessPoemException 565 * if the current <code>AccessToken</code> 566 * does not confer write access rights 567 * @return the Integer updates 568 */ 569 public Field<Integer> getUpdatesField() throws AccessPoemException { 570 Column<Integer> c = _getContactTable().getUpdatesColumn(); 571 return new Field<Integer>((Integer)c.getRaw(this), c); 572 } 573 574 575 /** 576 * Retrieves the <code>Lastupdated</code> value, without locking, 577 * for this <code>Contact</code> <code>Persistent</code>. 578 * 579 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 580 * @return the Date lastupdated 581 */ 582 public Date getLastupdated_unsafe() { 583 return lastupdated; 584 } 585 586 587 /** 588 * Sets the <code>Lastupdated</code> value directly, without checking, 589 * for this Contact <code>Persistent</code>. 590 * 591 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 592 * @param cooked the pre-validated value to set 593 */ 594 public void setLastupdated_unsafe(Date cooked) { 595 lastupdated = cooked; 596 } 597 598 /** 599 * Retrieves the Lastupdated value, with locking, for this 600 * <code>Contact</code> <code>Persistent</code>. 601 * Field description: 602 * When was this last updated? 603 * 604 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 605 * @throws AccessPoemException 606 * if the current <code>AccessToken</code> 607 * does not confer write access rights 608 * @return the value of the field <code>Lastupdated</code> for this 609 * <code>Contact</code> <code>Persistent</code> 610 */ 611 612 public Date getLastupdated() 613 throws AccessPoemException { 614 readLock(); 615 return getLastupdated_unsafe(); 616 } 617 618 619 /** 620 * Sets the <code>Lastupdated</code> value, with checking, for this 621 * <code>Contact</code> <code>Persistent</code>. 622 * Field description: 623 * When was this last updated? 624 * 625 * Generated by org.melati.poem.prepro.AtomFieldDef#generateBaseMethods 626 * @param cooked a validated <code>int</code> 627 * @throws AccessPoemException 628 * if the current <code>AccessToken</code> 629 * does not confer write access rights 630 * @throws ValidationPoemException 631 * if the value is not valid 632 */ 633 public void setLastupdated(Date cooked) 634 throws AccessPoemException, ValidationPoemException { 635 _getContactTable().getLastupdatedColumn(). 636 getType().assertValidCooked(cooked); 637 writeLock(); 638 setLastupdated_unsafe(cooked); 639 } 640 641 642 /** 643 * Retrieves the <code>Lastupdated</code> value as a <code>Field</code> 644 * from this <code>Contact</code> <code>Persistent</code>. 645 * 646 * see org.melati.poem.prepro.FieldDef#generateFieldCreator 647 * @throws AccessPoemException 648 * if the current <code>AccessToken</code> 649 * does not confer write access rights 650 * @return the Date lastupdated 651 */ 652 public Field<Date> getLastupdatedField() throws AccessPoemException { 653 Column<Date> c = _getContactTable().getLastupdatedColumn(); 654 return new Field<Date>((Date)c.getRaw(this), c); 655 } 656 657 658 /** 659 * Retrieves the <code>Lastupdateuser</code> value, without locking, 660 * for this <code>Contact</code> <code>Persistent</code>. 661 * 662 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 663 * @return the Integer lastupdateuser 664 */ 665 public Integer getLastupdateuser_unsafe() { 666 return lastupdateuser; 667 } 668 669 670 /** 671 * Sets the <code>Lastupdateuser</code> value directly, without checking, 672 * for this Contact <code>Persistent</code>. 673 * 674 * see org.melati.poem.prepro.FieldDef#generateBaseMethods 675 * @param cooked the pre-validated value to set 676 */ 677 public void setLastupdateuser_unsafe(Integer cooked) { 678 lastupdateuser = cooked; 679 } 680 681 /** 682 * Retrieves the Table Row Object ID. 683 * 684 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 685 * @throws AccessPoemException 686 * if the current <code>AccessToken</code> 687 * does not confer read access rights 688 * @return the TROID as an <code>Integer</code> 689 */ 690 691 public Integer getLastupdateuserTroid() 692 throws AccessPoemException { 693 readLock(); 694 return getLastupdateuser_unsafe(); 695 } 696 697 698 /** 699 * Sets the Table Row Object ID. 700 * 701 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 702 * @param raw a Table Row Object Id 703 * @throws AccessPoemException 704 * if the current <code>AccessToken</code> 705 * does not confer write access rights 706 */ 707 public void setLastupdateuserTroid(Integer raw) 708 throws AccessPoemException { 709 setLastupdateuser(raw == null ? null : 710 getContactsDatabaseTables().getUserTable().getUserObject(raw)); 711 } 712 713 714 /** 715 * Retrieves the <code>Lastupdateuser</code> object referred to. 716 * 717 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 718 * @throws AccessPoemException 719 * if the current <code>AccessToken</code> 720 * does not confer read access rights 721 * @throws NoSuchRowPoemException 722 * if the <code>Persistent</code> has yet to be allocated a TROID 723 * @return the <code>Lastupdateuser</code> as a <code>User</code> 724 */ 725 public User getLastupdateuser() 726 throws AccessPoemException, NoSuchRowPoemException { 727 Integer troid = getLastupdateuserTroid(); 728 return troid == null ? null : 729 getContactsDatabaseTables().getUserTable().getUserObject(troid); 730 } 731 732 733 /** 734 * Set the Lastupdateuser. 735 * 736 * Generated by org.melati.poem.prepro.ReferenceFieldDef#generateBaseMethods 737 * @param cooked a validated <code>User</code> 738 * @throws AccessPoemException 739 * if the current <code>AccessToken</code> 740 * does not confer write access rights 741 */ 742 public void setLastupdateuser(User cooked) 743 throws AccessPoemException { 744 _getContactTable(). 745 getLastupdateuserColumn(). 746 getType().assertValidCooked(cooked); 747 writeLock(); 748 if (cooked == null) 749 setLastupdateuser_unsafe(null); 750 else { 751 cooked.existenceLock(); 752 setLastupdateuser_unsafe(cooked.troid()); 753 } 754 } 755 756 757 /** 758 * Retrieves the <code>Lastupdateuser</code> value as a <code>Field</code> 759 * from this <code>Contact</code> <code>Persistent</code>. 760 * 761 * see org.melati.poem.prepro.FieldDef#generateFieldCreator 762 * @throws AccessPoemException 763 * if the current <code>AccessToken</code> 764 * does not confer write access rights 765 * @return the Integer lastupdateuser 766 */ 767 public Field<Integer> getLastupdateuserField() throws AccessPoemException { 768 Column<Integer> c = _getContactTable().getLastupdateuserColumn(); 769 return new Field<Integer>((Integer)c.getRaw(this), c); 770 } 771 772 private CachedSelection<Contact> ownerContacts = null; 773 /** References to this Contact in the Contact table via its owner field.*/ 774 @SuppressWarnings("unchecked") 775 public Enumeration<Contact> getOwnerContacts() { 776 if (getTroid() == null) 777 return new EmptyEnumeration<Contact>(); 778 else { 779 if (ownerContacts == null) 780 ownerContacts = 781 getContactsDatabaseTables().getContactTable().getOwnerColumn().cachedSelectionWhereEq(getTroid()); 782 return ownerContacts.objects(); 783 } 784 } 785 786 787 /** References to this Contact in the Contact table via its owner field, as a List.*/ 788 public List<Contact> getOwnerContactList() { 789 return Collections.list(getOwnerContacts()); 790 } 791 792 793 794 private CachedSelection<ContactCategory> contactContactCategorys = null; 795 /** References to this Contact in the ContactCategory table via its contact field.*/ 796 @SuppressWarnings("unchecked") 797 public Enumeration<ContactCategory> getContactContactCategorys() { 798 if (getTroid() == null) 799 return new EmptyEnumeration<ContactCategory>(); 800 else { 801 if (contactContactCategorys == null) 802 contactContactCategorys = 803 getContactsDatabaseTables().getContactCategoryTable().getContactColumn().cachedSelectionWhereEq(getTroid()); 804 return contactContactCategorys.objects(); 805 } 806 } 807 808 809 /** References to this Contact in the ContactCategory table via its contact field, as a List.*/ 810 public List<ContactCategory> getContactContactCategoryList() { 811 return Collections.list(getContactContactCategorys()); 812 } 813 814 815 816 } 817