1 package org.campware.cream.om; 2 3 import java.math.BigDecimal ; 4 import java.sql.Connection ; 5 import java.sql.SQLException ; 6 import java.util.ArrayList ; 7 import java.util.Date ; 8 import java.util.Iterator ; 9 import java.util.LinkedList ; 10 import java.util.List ; 11 12 import org.apache.torque.NoRowsException; 13 import org.apache.torque.TooManyRowsException; 14 import org.apache.torque.Torque; 15 import org.apache.torque.TorqueException; 16 import org.apache.torque.map.MapBuilder; 17 import org.apache.torque.map.TableMap; 18 import org.apache.torque.om.DateKey; 19 import org.apache.torque.om.NumberKey; 20 import org.apache.torque.om.StringKey; 21 import org.apache.torque.om.ObjectKey; 22 import org.apache.torque.om.SimpleKey; 23 import org.apache.torque.util.BasePeer; 24 import org.apache.torque.util.Criteria; 25 26 import com.workingdogs.village.DataSetException; 27 import com.workingdogs.village.QueryDataSet; 28 import com.workingdogs.village.Record; 29 30 import org.campware.cream.om.map.*; 32 33 34 35 41 public abstract class BaseProjectPeer 42 extends BasePeer 43 { 44 45 46 public static final String DATABASE_NAME = "cream"; 47 48 49 public static final String TABLE_NAME = "PROJECT"; 50 51 56 public static MapBuilder getMapBuilder() 57 throws TorqueException 58 { 59 return getMapBuilder(ProjectMapBuilder.CLASS_NAME); 60 } 61 62 63 public static final String PROJECT_ID; 64 65 public static final String PROJECT_CODE; 66 67 public static final String STATUS; 68 69 public static final String PRIORITY; 70 71 public static final String PROJECT_CAT_ID; 72 73 public static final String PROJECT_NAME; 74 75 public static final String START_DATE; 76 77 public static final String END_DATE; 78 79 public static final String EXPENSES; 80 81 public static final String REVENUES; 82 83 public static final String CUSTOM_1; 84 85 public static final String CUSTOM_2; 86 87 public static final String CUSTOM_3; 88 89 public static final String CUSTOM_4; 90 91 public static final String CUSTOM_5; 92 93 public static final String CUSTOM_6; 94 95 public static final String NOTES; 96 97 public static final String CREATED; 98 99 public static final String MODIFIED; 100 101 public static final String CREATED_BY; 102 103 public static final String MODIFIED_BY; 104 105 static 106 { 107 PROJECT_ID = "PROJECT.PROJECT_ID"; 108 PROJECT_CODE = "PROJECT.PROJECT_CODE"; 109 STATUS = "PROJECT.STATUS"; 110 PRIORITY = "PROJECT.PRIORITY"; 111 PROJECT_CAT_ID = "PROJECT.PROJECT_CAT_ID"; 112 PROJECT_NAME = "PROJECT.PROJECT_NAME"; 113 START_DATE = "PROJECT.START_DATE"; 114 END_DATE = "PROJECT.END_DATE"; 115 EXPENSES = "PROJECT.EXPENSES"; 116 REVENUES = "PROJECT.REVENUES"; 117 CUSTOM_1 = "PROJECT.CUSTOM_1"; 118 CUSTOM_2 = "PROJECT.CUSTOM_2"; 119 CUSTOM_3 = "PROJECT.CUSTOM_3"; 120 CUSTOM_4 = "PROJECT.CUSTOM_4"; 121 CUSTOM_5 = "PROJECT.CUSTOM_5"; 122 CUSTOM_6 = "PROJECT.CUSTOM_6"; 123 NOTES = "PROJECT.NOTES"; 124 CREATED = "PROJECT.CREATED"; 125 MODIFIED = "PROJECT.MODIFIED"; 126 CREATED_BY = "PROJECT.CREATED_BY"; 127 MODIFIED_BY = "PROJECT.MODIFIED_BY"; 128 if (Torque.isInit()) 129 { 130 try 131 { 132 getMapBuilder(ProjectMapBuilder.CLASS_NAME); 133 } 134 catch (Exception e) 135 { 136 log.error("Could not initialize Peer", e); 137 } 138 } 139 else 140 { 141 Torque.registerMapBuilder(ProjectMapBuilder.CLASS_NAME); 142 } 143 } 144 145 146 public static final int numColumns = 21; 147 148 149 protected static final String CLASSNAME_DEFAULT = 150 "org.campware.cream.om.Project"; 151 152 153 protected static final Class CLASS_DEFAULT = initClass(CLASSNAME_DEFAULT); 154 155 161 private static Class initClass(String className) 162 { 163 Class c = null; 164 try 165 { 166 c = Class.forName(className); 167 } 168 catch (Throwable t) 169 { 170 log.error("A FATAL ERROR has occurred which should not " 171 + "have happened under any circumstance. Please notify " 172 + "the Torque developers <torque-dev@db.apache.org> " 173 + "and give as many details as possible (including the error " 174 + "stack trace).", t); 175 176 if (t instanceof Error ) 178 { 179 throw (Error ) t.fillInStackTrace(); 180 } 181 } 182 return c; 183 } 184 185 195 public static List resultSet2Objects(java.sql.ResultSet results) 196 throws TorqueException 197 { 198 try 199 { 200 QueryDataSet qds = null; 201 List rows = null; 202 try 203 { 204 qds = new QueryDataSet(results); 205 rows = getSelectResults(qds); 206 } 207 finally 208 { 209 if (qds != null) 210 { 211 qds.close(); 212 } 213 } 214 215 return populateObjects(rows); 216 } 217 catch (SQLException e) 218 { 219 throw new TorqueException(e); 220 } 221 catch (DataSetException e) 222 { 223 throw new TorqueException(e); 224 } 225 } 226 227 228 229 236 public static ObjectKey doInsert(Criteria criteria) 237 throws TorqueException 238 { 239 return BaseProjectPeer 240 .doInsert(criteria, (Connection ) null); 241 } 242 243 253 public static ObjectKey doInsert(Criteria criteria, Connection con) 254 throws TorqueException 255 { 256 257 setDbName(criteria); 258 259 if (con == null) 260 { 261 return BasePeer.doInsert(criteria); 262 } 263 else 264 { 265 return BasePeer.doInsert(criteria, con); 266 } 267 } 268 269 276 public static void addSelectColumns(Criteria criteria) 277 throws TorqueException 278 { 279 criteria.addSelectColumn(PROJECT_ID); 280 criteria.addSelectColumn(PROJECT_CODE); 281 criteria.addSelectColumn(STATUS); 282 criteria.addSelectColumn(PRIORITY); 283 criteria.addSelectColumn(PROJECT_CAT_ID); 284 criteria.addSelectColumn(PROJECT_NAME); 285 criteria.addSelectColumn(START_DATE); 286 criteria.addSelectColumn(END_DATE); 287 criteria.addSelectColumn(EXPENSES); 288 criteria.addSelectColumn(REVENUES); 289 criteria.addSelectColumn(CUSTOM_1); 290 criteria.addSelectColumn(CUSTOM_2); 291 criteria.addSelectColumn(CUSTOM_3); 292 criteria.addSelectColumn(CUSTOM_4); 293 criteria.addSelectColumn(CUSTOM_5); 294 criteria.addSelectColumn(CUSTOM_6); 295 criteria.addSelectColumn(NOTES); 296 criteria.addSelectColumn(CREATED); 297 criteria.addSelectColumn(MODIFIED); 298 criteria.addSelectColumn(CREATED_BY); 299 criteria.addSelectColumn(MODIFIED_BY); 300 } 301 302 311 public static Project row2Object(Record row, 312 int offset, 313 Class cls) 314 throws TorqueException 315 { 316 try 317 { 318 Project obj = (Project) cls.newInstance(); 319 ProjectPeer.populateObject(row, offset, obj); 320 obj.setModified(false); 321 obj.setNew(false); 322 323 return obj; 324 } 325 catch (InstantiationException e) 326 { 327 throw new TorqueException(e); 328 } 329 catch (IllegalAccessException e) 330 { 331 throw new TorqueException(e); 332 } 333 } 334 335 344 public static void populateObject(Record row, 345 int offset, 346 Project obj) 347 throws TorqueException 348 { 349 try 350 { 351 obj.setProjectId(row.getValue(offset + 0).asInt()); 352 obj.setProjectCode(row.getValue(offset + 1).asString()); 353 obj.setStatus(row.getValue(offset + 2).asInt()); 354 obj.setPriority(row.getValue(offset + 3).asInt()); 355 obj.setProjectCatId(row.getValue(offset + 4).asInt()); 356 obj.setProjectName(row.getValue(offset + 5).asString()); 357 obj.setStartDate(row.getValue(offset + 6).asUtilDate()); 358 obj.setEndDate(row.getValue(offset + 7).asUtilDate()); 359 obj.setExpenses(row.getValue(offset + 8).asBigDecimal()); 360 obj.setRevenues(row.getValue(offset + 9).asBigDecimal()); 361 obj.setCustom1(row.getValue(offset + 10).asString()); 362 obj.setCustom2(row.getValue(offset + 11).asString()); 363 obj.setCustom3(row.getValue(offset + 12).asString()); 364 obj.setCustom4(row.getValue(offset + 13).asString()); 365 obj.setCustom5(row.getValue(offset + 14).asString()); 366 obj.setCustom6(row.getValue(offset + 15).asString()); 367 obj.setNotes(row.getValue(offset + 16).asString()); 368 obj.setCreated(row.getValue(offset + 17).asUtilDate()); 369 obj.setModified(row.getValue(offset + 18).asUtilDate()); 370 obj.setCreatedBy(row.getValue(offset + 19).asString()); 371 obj.setModifiedBy(row.getValue(offset + 20).asString()); 372 } 373 catch (DataSetException e) 374 { 375 throw new TorqueException(e); 376 } 377 } 378 379 387 public static List doSelect(Criteria criteria) throws TorqueException 388 { 389 return populateObjects(doSelectVillageRecords(criteria)); 390 } 391 392 401 public static List doSelect(Criteria criteria, Connection con) 402 throws TorqueException 403 { 404 return populateObjects(doSelectVillageRecords(criteria, con)); 405 } 406 407 417 public static List doSelectVillageRecords(Criteria criteria) 418 throws TorqueException 419 { 420 return BaseProjectPeer 421 .doSelectVillageRecords(criteria, (Connection ) null); 422 } 423 424 433 public static List doSelectVillageRecords(Criteria criteria, Connection con) 434 throws TorqueException 435 { 436 if (criteria.getSelectColumns().size() == 0) 437 { 438 addSelectColumns(criteria); 439 } 440 441 442 setDbName(criteria); 443 444 if (con == null) 447 { 448 return BasePeer.doSelect(criteria); 449 } 450 else 451 { 452 return BasePeer.doSelect(criteria, con); 453 } 454 } 455 456 463 public static List populateObjects(List records) 464 throws TorqueException 465 { 466 List results = new ArrayList (records.size()); 467 468 for (int i = 0; i < records.size(); i++) 470 { 471 Record row = (Record) records.get(i); 472 results.add(ProjectPeer.row2Object(row, 1, 473 ProjectPeer.getOMClass())); 474 } 475 return results; 476 } 477 478 479 487 public static Class getOMClass() 488 throws TorqueException 489 { 490 return CLASS_DEFAULT; 491 } 492 493 501 public static void doUpdate(Criteria criteria) throws TorqueException 502 { 503 BaseProjectPeer 504 .doUpdate(criteria, (Connection ) null); 505 } 506 507 518 public static void doUpdate(Criteria criteria, Connection con) 519 throws TorqueException 520 { 521 Criteria selectCriteria = new Criteria(DATABASE_NAME, 2); 522 selectCriteria.put(PROJECT_ID, criteria.remove(PROJECT_ID)); 523 524 setDbName(criteria); 525 526 if (con == null) 527 { 528 BasePeer.doUpdate(selectCriteria, criteria); 529 } 530 else 531 { 532 BasePeer.doUpdate(selectCriteria, criteria, con); 533 } 534 } 535 536 543 public static void doDelete(Criteria criteria) throws TorqueException 544 { 545 ProjectPeer 546 .doDelete(criteria, (Connection ) null); 547 } 548 549 559 public static void doDelete(Criteria criteria, Connection con) 560 throws TorqueException 561 { 562 563 setDbName(criteria); 564 565 if (con == null) 566 { 567 BasePeer.doDelete(criteria); 568 } 569 else 570 { 571 BasePeer.doDelete(criteria, con); 572 } 573 } 574 575 581 public static List doSelect(Project obj) throws TorqueException 582 { 583 return doSelect(buildSelectCriteria(obj)); 584 } 585 586 592 public static void doInsert(Project obj) throws TorqueException 593 { 594 obj.setPrimaryKey(doInsert(buildCriteria(obj))); 595 obj.setNew(false); 596 obj.setModified(false); 597 } 598 599 604 public static void doUpdate(Project obj) throws TorqueException 605 { 606 doUpdate(buildCriteria(obj)); 607 obj.setModified(false); 608 } 609 610 615 public static void doDelete(Project obj) throws TorqueException 616 { 617 doDelete(buildSelectCriteria(obj)); 618 } 619 620 630 public static void doInsert(Project obj, Connection con) 631 throws TorqueException 632 { 633 obj.setPrimaryKey(doInsert(buildCriteria(obj), con)); 634 obj.setNew(false); 635 obj.setModified(false); 636 } 637 638 648 public static void doUpdate(Project obj, Connection con) 649 throws TorqueException 650 { 651 doUpdate(buildCriteria(obj), con); 652 obj.setModified(false); 653 } 654 655 665 public static void doDelete(Project obj, Connection con) 666 throws TorqueException 667 { 668 doDelete(buildSelectCriteria(obj), con); 669 } 670 671 678 public static void doDelete(ObjectKey pk) throws TorqueException 679 { 680 BaseProjectPeer 681 .doDelete(pk, (Connection ) null); 682 } 683 684 694 public static void doDelete(ObjectKey pk, Connection con) 695 throws TorqueException 696 { 697 doDelete(buildCriteria(pk), con); 698 } 699 700 701 public static Criteria buildCriteria( ObjectKey pk ) 702 { 703 Criteria criteria = new Criteria(); 704 criteria.add(PROJECT_ID, pk); 705 return criteria; 706 } 707 708 709 public static Criteria buildCriteria( Project obj ) 710 { 711 Criteria criteria = new Criteria(DATABASE_NAME); 712 if (!obj.isNew()) 713 criteria.add(PROJECT_ID, obj.getProjectId()); 714 criteria.add(PROJECT_CODE, obj.getProjectCode()); 715 criteria.add(STATUS, obj.getStatus()); 716 criteria.add(PRIORITY, obj.getPriority()); 717 criteria.add(PROJECT_CAT_ID, obj.getProjectCatId()); 718 criteria.add(PROJECT_NAME, obj.getProjectName()); 719 criteria.add(START_DATE, obj.getStartDate()); 720 criteria.add(END_DATE, obj.getEndDate()); 721 criteria.add(EXPENSES, obj.getExpenses()); 722 criteria.add(REVENUES, obj.getRevenues()); 723 criteria.add(CUSTOM_1, obj.getCustom1()); 724 criteria.add(CUSTOM_2, obj.getCustom2()); 725 criteria.add(CUSTOM_3, obj.getCustom3()); 726 criteria.add(CUSTOM_4, obj.getCustom4()); 727 criteria.add(CUSTOM_5, obj.getCustom5()); 728 criteria.add(CUSTOM_6, obj.getCustom6()); 729 criteria.add(NOTES, obj.getNotes()); 730 criteria.add(CREATED, obj.getCreated()); 731 criteria.add(MODIFIED, obj.getModified()); 732 criteria.add(CREATED_BY, obj.getCreatedBy()); 733 criteria.add(MODIFIED_BY, obj.getModifiedBy()); 734 return criteria; 735 } 736 737 738 public static Criteria buildSelectCriteria( Project obj ) 739 { 740 Criteria criteria = new Criteria(DATABASE_NAME); 741 if (!obj.isNew()) 742 criteria.add(PROJECT_ID, obj.getProjectId()); 743 criteria.add(PROJECT_CODE, obj.getProjectCode()); 744 criteria.add(STATUS, obj.getStatus()); 745 criteria.add(PRIORITY, obj.getPriority()); 746 criteria.add(PROJECT_CAT_ID, obj.getProjectCatId()); 747 criteria.add(PROJECT_NAME, obj.getProjectName()); 748 criteria.add(START_DATE, obj.getStartDate()); 749 criteria.add(END_DATE, obj.getEndDate()); 750 criteria.add(EXPENSES, obj.getExpenses()); 751 criteria.add(REVENUES, obj.getRevenues()); 752 criteria.add(CUSTOM_1, obj.getCustom1()); 753 criteria.add(CUSTOM_2, obj.getCustom2()); 754 criteria.add(CUSTOM_3, obj.getCustom3()); 755 criteria.add(CUSTOM_4, obj.getCustom4()); 756 criteria.add(CUSTOM_5, obj.getCustom5()); 757 criteria.add(CUSTOM_6, obj.getCustom6()); 758 criteria.add(NOTES, obj.getNotes()); 759 criteria.add(CREATED, obj.getCreated()); 760 criteria.add(MODIFIED, obj.getModified()); 761 criteria.add(CREATED_BY, obj.getCreatedBy()); 762 criteria.add(MODIFIED_BY, obj.getModifiedBy()); 763 return criteria; 764 } 765 766 767 776 public static Project retrieveByPK(int pk) 777 throws TorqueException, NoRowsException, TooManyRowsException 778 { 779 return retrieveByPK(SimpleKey.keyFor(pk)); 780 } 781 782 792 public static Project retrieveByPK(int pk, Connection con) 793 throws TorqueException, NoRowsException, TooManyRowsException 794 { 795 return retrieveByPK(SimpleKey.keyFor(pk), con); 796 } 797 798 807 public static Project retrieveByPK(ObjectKey pk) 808 throws TorqueException, NoRowsException, TooManyRowsException 809 { 810 Connection db = null; 811 Project retVal = null; 812 try 813 { 814 db = Torque.getConnection(DATABASE_NAME); 815 retVal = retrieveByPK(pk, db); 816 } 817 finally 818 { 819 Torque.closeConnection(db); 820 } 821 return(retVal); 822 } 823 824 834 public static Project retrieveByPK(ObjectKey pk, Connection con) 835 throws TorqueException, NoRowsException, TooManyRowsException 836 { 837 Criteria criteria = buildCriteria(pk); 838 List v = doSelect(criteria, con); 839 if (v.size() == 0) 840 { 841 throw new NoRowsException("Failed to select a row."); 842 } 843 else if (v.size() > 1) 844 { 845 throw new TooManyRowsException("Failed to select only one row."); 846 } 847 else 848 { 849 return (Project)v.get(0); 850 } 851 } 852 853 860 public static List retrieveByPKs(List pks) 861 throws TorqueException 862 { 863 Connection db = null; 864 List retVal = null; 865 try 866 { 867 db = Torque.getConnection(DATABASE_NAME); 868 retVal = retrieveByPKs(pks, db); 869 } 870 finally 871 { 872 Torque.closeConnection(db); 873 } 874 return(retVal); 875 } 876 877 885 public static List retrieveByPKs( List pks, Connection dbcon ) 886 throws TorqueException 887 { 888 List objs = null; 889 if (pks == null || pks.size() == 0) 890 { 891 objs = new LinkedList (); 892 } 893 else 894 { 895 Criteria criteria = new Criteria(); 896 criteria.addIn( PROJECT_ID, pks ); 897 objs = doSelect(criteria, dbcon); 898 } 899 return objs; 900 } 901 902 903 904 905 906 907 908 909 910 911 922 protected static List doSelectJoinProjectCategory(Criteria criteria) 923 throws TorqueException 924 { 925 setDbName(criteria); 926 927 ProjectPeer.addSelectColumns(criteria); 928 int offset = numColumns + 1; 929 ProjectCategoryPeer.addSelectColumns(criteria); 930 931 932 criteria.addJoin(ProjectPeer.PROJECT_CAT_ID, 933 ProjectCategoryPeer.PROJECT_CAT_ID); 934 935 936 937 List rows = BasePeer.doSelect(criteria); 938 List results = new ArrayList (); 939 940 for (int i = 0; i < rows.size(); i++) 941 { 942 Record row = (Record) rows.get(i); 943 944 Class omClass = ProjectPeer.getOMClass(); 945 Project obj1 = (Project) ProjectPeer 946 .row2Object(row, 1, omClass); 947 omClass = ProjectCategoryPeer.getOMClass(); 948 ProjectCategory obj2 = (ProjectCategory)ProjectCategoryPeer 949 .row2Object(row, offset, omClass); 950 951 boolean newObject = true; 952 for (int j = 0; j < results.size(); j++) 953 { 954 Project temp_obj1 = (Project)results.get(j); 955 ProjectCategory temp_obj2 = (ProjectCategory)temp_obj1.getProjectCategory(); 956 if (temp_obj2.getPrimaryKey().equals(obj2.getPrimaryKey())) 957 { 958 newObject = false; 959 temp_obj2.addProject(obj1); 960 break; 961 } 962 } 963 if (newObject) 964 { 965 obj2.initProjects(); 966 obj2.addProject(obj1); 967 } 968 results.add(obj1); 969 } 970 return results; 971 } 972 973 974 975 976 983 protected static TableMap getTableMap() 984 throws TorqueException 985 { 986 return Torque.getDatabaseMap(DATABASE_NAME).getTable(TABLE_NAME); 987 } 988 989 private static void setDbName(Criteria crit) 990 { 991 if (crit.getDbName() == Torque.getDefaultDB()) 995 { 996 crit.setDbName(DATABASE_NAME); 997 } 998 } 999 } 1000
| Popular Tags
|