001 package org.apache.turbine.services.schedule; 002 003 004 import java.math.BigDecimal; 005 import java.sql.Connection; 006 import java.util.ArrayList; 007 import java.util.Collections; 008 import java.util.Date; 009 import java.util.List; 010 011 import org.apache.commons.lang.ObjectUtils; 012 import org.apache.torque.TorqueException; 013 import org.apache.torque.map.TableMap; 014 import org.apache.torque.om.BaseObject; 015 import org.apache.torque.om.ComboKey; 016 import org.apache.torque.om.DateKey; 017 import org.apache.torque.om.NumberKey; 018 import org.apache.torque.om.ObjectKey; 019 import org.apache.torque.om.SimpleKey; 020 import org.apache.torque.om.StringKey; 021 import org.apache.torque.om.Persistent; 022 import org.apache.torque.util.Criteria; 023 import org.apache.torque.util.Transaction; 024 025 026 027 028 029 /** 030 * This class was autogenerated by Torque on: 031 * 032 * [Thu Jun 23 17:25:46 CEST 2011] 033 * 034 * You should not use this class directly. It should not even be 035 * extended all references should be to JobEntry 036 */ 037 public abstract class BaseJobEntry extends BaseObject 038 { 039 /** Serial version */ 040 private static final long serialVersionUID = 1308842746584L; 041 042 /** The Peer class */ 043 private static final JobEntryPeer peer = 044 new JobEntryPeer(); 045 046 047 /** The value for the jobId field */ 048 private int jobId; 049 050 /** The value for the second field */ 051 private int second = -1; 052 053 /** The value for the minute field */ 054 private int minute = -1; 055 056 /** The value for the hour field */ 057 private int hour = -1; 058 059 /** The value for the weekDay field */ 060 private int weekDay = -1; 061 062 /** The value for the dayOfMonth field */ 063 private int dayOfMonth = -1; 064 065 /** The value for the task field */ 066 private String task; 067 068 /** The value for the email field */ 069 private String email; 070 071 /** The value for the property field */ 072 private byte[] property; 073 074 075 /** 076 * Get the JobId 077 * 078 * @return int 079 */ 080 public int getJobId() 081 { 082 return jobId; 083 } 084 085 086 /** 087 * Set the value of JobId 088 * 089 * @param v new value 090 */ 091 public void setJobId(int v) 092 { 093 094 if (this.jobId != v) 095 { 096 this.jobId = v; 097 setModified(true); 098 } 099 100 101 } 102 103 /** 104 * Get the Second 105 * 106 * @return int 107 */ 108 public int getSecond() 109 { 110 return second; 111 } 112 113 114 /** 115 * Set the value of Second 116 * 117 * @param v new value 118 */ 119 public void setSecond(int v) 120 { 121 122 if (this.second != v) 123 { 124 this.second = v; 125 setModified(true); 126 } 127 128 129 } 130 131 /** 132 * Get the Minute 133 * 134 * @return int 135 */ 136 public int getMinute() 137 { 138 return minute; 139 } 140 141 142 /** 143 * Set the value of Minute 144 * 145 * @param v new value 146 */ 147 public void setMinute(int v) 148 { 149 150 if (this.minute != v) 151 { 152 this.minute = v; 153 setModified(true); 154 } 155 156 157 } 158 159 /** 160 * Get the Hour 161 * 162 * @return int 163 */ 164 public int getHour() 165 { 166 return hour; 167 } 168 169 170 /** 171 * Set the value of Hour 172 * 173 * @param v new value 174 */ 175 public void setHour(int v) 176 { 177 178 if (this.hour != v) 179 { 180 this.hour = v; 181 setModified(true); 182 } 183 184 185 } 186 187 /** 188 * Get the WeekDay 189 * 190 * @return int 191 */ 192 public int getWeekDay() 193 { 194 return weekDay; 195 } 196 197 198 /** 199 * Set the value of WeekDay 200 * 201 * @param v new value 202 */ 203 public void setWeekDay(int v) 204 { 205 206 if (this.weekDay != v) 207 { 208 this.weekDay = v; 209 setModified(true); 210 } 211 212 213 } 214 215 /** 216 * Get the DayOfMonth 217 * 218 * @return int 219 */ 220 public int getDayOfMonth() 221 { 222 return dayOfMonth; 223 } 224 225 226 /** 227 * Set the value of DayOfMonth 228 * 229 * @param v new value 230 */ 231 public void setDayOfMonth(int v) 232 { 233 234 if (this.dayOfMonth != v) 235 { 236 this.dayOfMonth = v; 237 setModified(true); 238 } 239 240 241 } 242 243 /** 244 * Get the Task 245 * 246 * @return String 247 */ 248 public String getTask() 249 { 250 return task; 251 } 252 253 254 /** 255 * Set the value of Task 256 * 257 * @param v new value 258 */ 259 public void setTask(String v) 260 { 261 262 if (!ObjectUtils.equals(this.task, v)) 263 { 264 this.task = v; 265 setModified(true); 266 } 267 268 269 } 270 271 /** 272 * Get the Email 273 * 274 * @return String 275 */ 276 public String getEmail() 277 { 278 return email; 279 } 280 281 282 /** 283 * Set the value of Email 284 * 285 * @param v new value 286 */ 287 public void setEmail(String v) 288 { 289 290 if (!ObjectUtils.equals(this.email, v)) 291 { 292 this.email = v; 293 setModified(true); 294 } 295 296 297 } 298 299 /** 300 * Get the Property 301 * 302 * @return byte[] 303 */ 304 public byte[] getProperty() 305 { 306 return property; 307 } 308 309 310 /** 311 * Set the value of Property 312 * 313 * @param v new value 314 */ 315 public void setProperty(byte[] v) 316 { 317 318 if (!ObjectUtils.equals(this.property, v)) 319 { 320 this.property = v; 321 setModified(true); 322 } 323 324 325 } 326 327 328 329 private static List<String> fieldNames = null; 330 331 /** 332 * Generate a list of field names. 333 * 334 * @return a list of field names 335 */ 336 public static synchronized List<String> getFieldNames() 337 { 338 if (fieldNames == null) 339 { 340 fieldNames = new ArrayList<String>(); 341 fieldNames.add("JobId"); 342 fieldNames.add("Second"); 343 fieldNames.add("Minute"); 344 fieldNames.add("Hour"); 345 fieldNames.add("WeekDay"); 346 fieldNames.add("DayOfMonth"); 347 fieldNames.add("Task"); 348 fieldNames.add("Email"); 349 fieldNames.add("Property"); 350 fieldNames = Collections.unmodifiableList(fieldNames); 351 } 352 return fieldNames; 353 } 354 355 /** 356 * Retrieves a field from the object by field (Java) name passed in as a String. 357 * 358 * @param name field name 359 * @return value 360 */ 361 public Object getByName(String name) 362 { 363 if (name.equals("JobId")) 364 { 365 return new Integer(getJobId()); 366 } 367 if (name.equals("Second")) 368 { 369 return new Integer(getSecond()); 370 } 371 if (name.equals("Minute")) 372 { 373 return new Integer(getMinute()); 374 } 375 if (name.equals("Hour")) 376 { 377 return new Integer(getHour()); 378 } 379 if (name.equals("WeekDay")) 380 { 381 return new Integer(getWeekDay()); 382 } 383 if (name.equals("DayOfMonth")) 384 { 385 return new Integer(getDayOfMonth()); 386 } 387 if (name.equals("Task")) 388 { 389 return getTask(); 390 } 391 if (name.equals("Email")) 392 { 393 return getEmail(); 394 } 395 if (name.equals("Property")) 396 { 397 return getProperty(); 398 } 399 return null; 400 } 401 402 /** 403 * Set a field in the object by field (Java) name. 404 * 405 * @param name field name 406 * @param value field value 407 * @return True if value was set, false if not (invalid name / protected field). 408 * @throws IllegalArgumentException if object type of value does not match field object type. 409 * @throws TorqueException If a problem occurs with the set[Field] method. 410 */ 411 public boolean setByName(String name, Object value ) 412 throws TorqueException, IllegalArgumentException 413 { 414 if (name.equals("JobId")) 415 { 416 if (value == null || ! (Integer.class.isInstance(value))) 417 { 418 throw new IllegalArgumentException("setByName: value parameter was null or not an Integer object."); 419 } 420 setJobId(((Integer) value).intValue()); 421 return true; 422 } 423 if (name.equals("Second")) 424 { 425 if (value == null || ! (Integer.class.isInstance(value))) 426 { 427 throw new IllegalArgumentException("setByName: value parameter was null or not an Integer object."); 428 } 429 setSecond(((Integer) value).intValue()); 430 return true; 431 } 432 if (name.equals("Minute")) 433 { 434 if (value == null || ! (Integer.class.isInstance(value))) 435 { 436 throw new IllegalArgumentException("setByName: value parameter was null or not an Integer object."); 437 } 438 setMinute(((Integer) value).intValue()); 439 return true; 440 } 441 if (name.equals("Hour")) 442 { 443 if (value == null || ! (Integer.class.isInstance(value))) 444 { 445 throw new IllegalArgumentException("setByName: value parameter was null or not an Integer object."); 446 } 447 setHour(((Integer) value).intValue()); 448 return true; 449 } 450 if (name.equals("WeekDay")) 451 { 452 if (value == null || ! (Integer.class.isInstance(value))) 453 { 454 throw new IllegalArgumentException("setByName: value parameter was null or not an Integer object."); 455 } 456 setWeekDay(((Integer) value).intValue()); 457 return true; 458 } 459 if (name.equals("DayOfMonth")) 460 { 461 if (value == null || ! (Integer.class.isInstance(value))) 462 { 463 throw new IllegalArgumentException("setByName: value parameter was null or not an Integer object."); 464 } 465 setDayOfMonth(((Integer) value).intValue()); 466 return true; 467 } 468 if (name.equals("Task")) 469 { 470 // Object fields can be null 471 if (value != null && ! String.class.isInstance(value)) 472 { 473 throw new IllegalArgumentException("Invalid type of object specified for value in setByName"); 474 } 475 setTask((String) value); 476 return true; 477 } 478 if (name.equals("Email")) 479 { 480 // Object fields can be null 481 if (value != null && ! String.class.isInstance(value)) 482 { 483 throw new IllegalArgumentException("Invalid type of object specified for value in setByName"); 484 } 485 setEmail((String) value); 486 return true; 487 } 488 if (name.equals("Property")) 489 { 490 // Object fields can be null 491 if (value != null && ! byte[].class.isInstance(value)) 492 { 493 throw new IllegalArgumentException("Invalid type of object specified for value in setByName"); 494 } 495 setProperty((byte[]) value); 496 return true; 497 } 498 return false; 499 } 500 501 /** 502 * Retrieves a field from the object by name passed in 503 * as a String. The String must be one of the static 504 * Strings defined in this Class' Peer. 505 * 506 * @param name peer name 507 * @return value 508 */ 509 public Object getByPeerName(String name) 510 { 511 if (name.equals(JobEntryPeer.JOB_ID)) 512 { 513 return new Integer(getJobId()); 514 } 515 if (name.equals(JobEntryPeer.SECOND)) 516 { 517 return new Integer(getSecond()); 518 } 519 if (name.equals(JobEntryPeer.MINUTE)) 520 { 521 return new Integer(getMinute()); 522 } 523 if (name.equals(JobEntryPeer.HOUR)) 524 { 525 return new Integer(getHour()); 526 } 527 if (name.equals(JobEntryPeer.WEEK_DAY)) 528 { 529 return new Integer(getWeekDay()); 530 } 531 if (name.equals(JobEntryPeer.DAY_OF_MONTH)) 532 { 533 return new Integer(getDayOfMonth()); 534 } 535 if (name.equals(JobEntryPeer.TASK)) 536 { 537 return getTask(); 538 } 539 if (name.equals(JobEntryPeer.EMAIL)) 540 { 541 return getEmail(); 542 } 543 if (name.equals(JobEntryPeer.PROPERTY)) 544 { 545 return getProperty(); 546 } 547 return null; 548 } 549 550 /** 551 * Set field values by Peer Field Name 552 * 553 * @param name field name 554 * @param value field value 555 * @return True if value was set, false if not (invalid name / protected field). 556 * @throws IllegalArgumentException if object type of value does not match field object type. 557 * @throws TorqueException If a problem occurs with the set[Field] method. 558 */ 559 public boolean setByPeerName(String name, Object value) 560 throws TorqueException, IllegalArgumentException 561 { 562 if (JobEntryPeer.JOB_ID.equals(name)) 563 { 564 return setByName("JobId", value); 565 } 566 if (JobEntryPeer.SECOND.equals(name)) 567 { 568 return setByName("Second", value); 569 } 570 if (JobEntryPeer.MINUTE.equals(name)) 571 { 572 return setByName("Minute", value); 573 } 574 if (JobEntryPeer.HOUR.equals(name)) 575 { 576 return setByName("Hour", value); 577 } 578 if (JobEntryPeer.WEEK_DAY.equals(name)) 579 { 580 return setByName("WeekDay", value); 581 } 582 if (JobEntryPeer.DAY_OF_MONTH.equals(name)) 583 { 584 return setByName("DayOfMonth", value); 585 } 586 if (JobEntryPeer.TASK.equals(name)) 587 { 588 return setByName("Task", value); 589 } 590 if (JobEntryPeer.EMAIL.equals(name)) 591 { 592 return setByName("Email", value); 593 } 594 if (JobEntryPeer.PROPERTY.equals(name)) 595 { 596 return setByName("Property", value); 597 } 598 return false; 599 } 600 601 /** 602 * Retrieves a field from the object by Position as specified 603 * in the xml schema. Zero-based. 604 * 605 * @param pos position in xml schema 606 * @return value 607 */ 608 public Object getByPosition(int pos) 609 { 610 if (pos == 0) 611 { 612 return new Integer(getJobId()); 613 } 614 if (pos == 1) 615 { 616 return new Integer(getSecond()); 617 } 618 if (pos == 2) 619 { 620 return new Integer(getMinute()); 621 } 622 if (pos == 3) 623 { 624 return new Integer(getHour()); 625 } 626 if (pos == 4) 627 { 628 return new Integer(getWeekDay()); 629 } 630 if (pos == 5) 631 { 632 return new Integer(getDayOfMonth()); 633 } 634 if (pos == 6) 635 { 636 return getTask(); 637 } 638 if (pos == 7) 639 { 640 return getEmail(); 641 } 642 if (pos == 8) 643 { 644 return getProperty(); 645 } 646 return null; 647 } 648 649 /** 650 * Set field values by its position (zero based) in the XML schema. 651 * 652 * @param position The field position 653 * @param value field value 654 * @return True if value was set, false if not (invalid position / protected field). 655 * @throws IllegalArgumentException if object type of value does not match field object type. 656 * @throws TorqueException If a problem occurs with the set[Field] method. 657 */ 658 public boolean setByPosition(int position, Object value) 659 throws TorqueException, IllegalArgumentException 660 { 661 if (position == 0) 662 { 663 return setByName("JobId", value); 664 } 665 if (position == 1) 666 { 667 return setByName("Second", value); 668 } 669 if (position == 2) 670 { 671 return setByName("Minute", value); 672 } 673 if (position == 3) 674 { 675 return setByName("Hour", value); 676 } 677 if (position == 4) 678 { 679 return setByName("WeekDay", value); 680 } 681 if (position == 5) 682 { 683 return setByName("DayOfMonth", value); 684 } 685 if (position == 6) 686 { 687 return setByName("Task", value); 688 } 689 if (position == 7) 690 { 691 return setByName("Email", value); 692 } 693 if (position == 8) 694 { 695 return setByName("Property", value); 696 } 697 return false; 698 } 699 700 /** 701 * Stores the object in the database. If the object is new, 702 * it inserts it; otherwise an update is performed. 703 * 704 * @throws Exception 705 */ 706 public void save() throws Exception 707 { 708 save(JobEntryPeer.DATABASE_NAME); 709 } 710 711 /** 712 * Stores the object in the database. If the object is new, 713 * it inserts it; otherwise an update is performed. 714 * Note: this code is here because the method body is 715 * auto-generated conditionally and therefore needs to be 716 * in this file instead of in the super class, BaseObject. 717 * 718 * @param dbName 719 * @throws TorqueException 720 */ 721 public void save(String dbName) throws TorqueException 722 { 723 Connection con = null; 724 try 725 { 726 con = Transaction.begin(dbName); 727 save(con); 728 Transaction.commit(con); 729 } 730 catch(TorqueException e) 731 { 732 Transaction.safeRollback(con); 733 throw e; 734 } 735 } 736 737 /** flag to prevent endless save loop, if this object is referenced 738 by another object which falls in this transaction. */ 739 private boolean alreadyInSave = false; 740 /** 741 * Stores the object in the database. If the object is new, 742 * it inserts it; otherwise an update is performed. This method 743 * is meant to be used as part of a transaction, otherwise use 744 * the save() method and the connection details will be handled 745 * internally 746 * 747 * @param con 748 * @throws TorqueException 749 */ 750 public void save(Connection con) throws TorqueException 751 { 752 if (!alreadyInSave) 753 { 754 alreadyInSave = true; 755 756 757 758 // If this object has been modified, then save it to the database. 759 if (isModified()) 760 { 761 if (isNew()) 762 { 763 JobEntryPeer.doInsert((JobEntry) this, con); 764 setNew(false); 765 } 766 else 767 { 768 JobEntryPeer.doUpdate((JobEntry) this, con); 769 } 770 } 771 772 alreadyInSave = false; 773 } 774 } 775 776 777 /** 778 * Set the PrimaryKey using ObjectKey. 779 * 780 * @param key jobId ObjectKey 781 */ 782 public void setPrimaryKey(ObjectKey key) 783 784 { 785 setJobId(((NumberKey) key).intValue()); 786 } 787 788 /** 789 * Set the PrimaryKey using a String. 790 * 791 * @param key 792 */ 793 public void setPrimaryKey(String key) 794 { 795 setJobId(Integer.parseInt(key)); 796 } 797 798 799 /** 800 * returns an id that differentiates this object from others 801 * of its class. 802 */ 803 public ObjectKey getPrimaryKey() 804 { 805 return SimpleKey.keyFor(getJobId()); 806 } 807 808 809 /** 810 * Makes a copy of this object. 811 * It creates a new object filling in the simple attributes. 812 * It then fills all the association collections and sets the 813 * related objects to isNew=true. 814 */ 815 public JobEntry copy() throws TorqueException 816 { 817 return copy(true); 818 } 819 820 /** 821 * Makes a copy of this object using connection. 822 * It creates a new object filling in the simple attributes. 823 * It then fills all the association collections and sets the 824 * related objects to isNew=true. 825 * 826 * @param con the database connection to read associated objects. 827 */ 828 public JobEntry copy(Connection con) throws TorqueException 829 { 830 return copy(true, con); 831 } 832 833 /** 834 * Makes a copy of this object. 835 * It creates a new object filling in the simple attributes. 836 * If the parameter deepcopy is true, it then fills all the 837 * association collections and sets the related objects to 838 * isNew=true. 839 * 840 * @param deepcopy whether to copy the associated objects. 841 */ 842 public JobEntry copy(boolean deepcopy) throws TorqueException 843 { 844 return copyInto(new JobEntry(), deepcopy); 845 } 846 847 /** 848 * Makes a copy of this object using connection. 849 * It creates a new object filling in the simple attributes. 850 * If the parameter deepcopy is true, it then fills all the 851 * association collections and sets the related objects to 852 * isNew=true. 853 * 854 * @param deepcopy whether to copy the associated objects. 855 * @param con the database connection to read associated objects. 856 */ 857 public JobEntry copy(boolean deepcopy, Connection con) throws TorqueException 858 { 859 return copyInto(new JobEntry(), deepcopy, con); 860 } 861 862 /** 863 * Fills the copyObj with the contents of this object. 864 * The associated objects are also copied and treated as new objects. 865 * 866 * @param copyObj the object to fill. 867 */ 868 protected JobEntry copyInto(JobEntry copyObj) throws TorqueException 869 { 870 return copyInto(copyObj, true); 871 } 872 873 874 /** 875 * Fills the copyObj with the contents of this object using connection. 876 * The associated objects are also copied and treated as new objects. 877 * 878 * @param copyObj the object to fill. 879 * @param con the database connection to read associated objects. 880 */ 881 protected JobEntry copyInto(JobEntry copyObj, Connection con) throws TorqueException 882 { 883 return copyInto(copyObj, true, con); 884 } 885 886 /** 887 * Fills the copyObj with the contents of this object. 888 * If deepcopy is true, The associated objects are also copied 889 * and treated as new objects. 890 * 891 * @param copyObj the object to fill. 892 * @param deepcopy whether the associated objects should be copied. 893 */ 894 protected JobEntry copyInto(JobEntry copyObj, boolean deepcopy) throws TorqueException 895 { 896 copyObj.setJobId(jobId); 897 copyObj.setSecond(second); 898 copyObj.setMinute(minute); 899 copyObj.setHour(hour); 900 copyObj.setWeekDay(weekDay); 901 copyObj.setDayOfMonth(dayOfMonth); 902 copyObj.setTask(task); 903 copyObj.setEmail(email); 904 copyObj.setProperty(property); 905 906 copyObj.setJobId( 0); 907 908 if (deepcopy) 909 { 910 } 911 return copyObj; 912 } 913 914 915 /** 916 * Fills the copyObj with the contents of this object using connection. 917 * If deepcopy is true, The associated objects are also copied 918 * and treated as new objects. 919 * 920 * @param copyObj the object to fill. 921 * @param deepcopy whether the associated objects should be copied. 922 * @param con the database connection to read associated objects. 923 */ 924 protected JobEntry copyInto(JobEntry copyObj, boolean deepcopy, Connection con) throws TorqueException 925 { 926 copyObj.setJobId(jobId); 927 copyObj.setSecond(second); 928 copyObj.setMinute(minute); 929 copyObj.setHour(hour); 930 copyObj.setWeekDay(weekDay); 931 copyObj.setDayOfMonth(dayOfMonth); 932 copyObj.setTask(task); 933 copyObj.setEmail(email); 934 copyObj.setProperty(property); 935 936 copyObj.setJobId( 0); 937 938 if (deepcopy) 939 { 940 } 941 return copyObj; 942 } 943 944 945 946 /** 947 * returns a peer instance associated with this om. Since Peer classes 948 * are not to have any instance attributes, this method returns the 949 * same instance for all member of this class. The method could therefore 950 * be static, but this would prevent one from overriding the behavior. 951 */ 952 public JobEntryPeer getPeer() 953 { 954 return peer; 955 } 956 957 /** 958 * Retrieves the TableMap object related to this Table data without 959 * compiler warnings of using getPeer().getTableMap(). 960 * 961 * @return The associated TableMap object. 962 */ 963 public TableMap getTableMap() throws TorqueException 964 { 965 return JobEntryPeer.getTableMap(); 966 } 967 968 969 public String toString() 970 { 971 StringBuffer str = new StringBuffer(); 972 str.append("JobEntry:\n"); 973 str.append("JobId = ") 974 .append(getJobId()) 975 .append("\n"); 976 str.append("Second = ") 977 .append(getSecond()) 978 .append("\n"); 979 str.append("Minute = ") 980 .append(getMinute()) 981 .append("\n"); 982 str.append("Hour = ") 983 .append(getHour()) 984 .append("\n"); 985 str.append("WeekDay = ") 986 .append(getWeekDay()) 987 .append("\n"); 988 str.append("DayOfMonth = ") 989 .append(getDayOfMonth()) 990 .append("\n"); 991 str.append("Task = ") 992 .append(getTask()) 993 .append("\n"); 994 str.append("Email = ") 995 .append(getEmail()) 996 .append("\n"); 997 str.append("Property = ") 998 .append("<binary>") 999 .append("\n"); 1000 return(str.toString()); 1001 } 1002 }