001package org.apache.turbine.services.schedule;
002
003import java.io.Serializable;
004import java.sql.Connection;
005import java.text.SimpleDateFormat;
006import java.util.ArrayList;
007import java.util.Collections;
008import java.util.Date;
009import java.util.GregorianCalendar;
010import java.util.List;
011
012import org.apache.torque.TorqueException;
013import org.apache.torque.map.TableMap;
014import org.apache.torque.om.ComboKey;
015import org.apache.torque.om.DateKey;
016import org.apache.torque.om.NumberKey;
017import org.apache.torque.om.ObjectKey;
018import org.apache.torque.om.SimpleKey;
019import org.apache.torque.om.StringKey;
020import org.apache.torque.om.BooleanKey;
021import org.apache.torque.om.Persistent;
022import org.apache.torque.criteria.Criteria;
023import org.apache.torque.util.Transaction;
024import org.apache.commons.lang.ObjectUtils;
025
026
027/**
028 * This class was autogenerated by Torque on:
029 *
030 * [Mon Dec 21 20:40:21 CET 2015]
031 *
032 * You should not use this class directly.  It should not even be
033 * extended; all references should be to JobEntryTorque
034 */
035public abstract class BaseJobEntryTorque extends org.apache.turbine.services.schedule.AbstractJobEntry
036    implements Persistent, Serializable
037{
038    /** Serial version */
039    private static final long serialVersionUID = 1450726821044L;
040
041
042
043    /** Defines the jobId field. */
044    private int jobId = 0;
045
046    /** Defines the second field. */
047    private int second = -1;
048
049    /** Defines the minute field. */
050    private int minute = -1;
051
052    /** Defines the hour field. */
053    private int hour = -1;
054
055    /** Defines the weekDay field. */
056    private int weekDay = -1;
057
058    /** Defines the dayOfMonth field. */
059    private int dayOfMonth = -1;
060
061    /** Defines the task field. */
062    private String task = null;
063
064    /** Defines the email field. */
065    private String email = null;
066
067    /** Defines the property field. */
068    private byte[] property = null;
069
070    /** Whether this object was modified after loading or after last save. */
071    private boolean modified = true;
072
073    /** 
074     * Whether this object was loaded from the database or already saved 
075     * (false) or whether it is not yet in the database(true).
076     */
077    private boolean isNew = true;
078
079    /** Flag which indicates whether this object is currently saving. */
080    private boolean saving = false;
081
082    /** 
083     * Flag which indicates whether this object is currently loaded
084     * from the database. 
085     */
086    private boolean loading = false;
087
088    /** 
089     * Flag which indicates whether this object was deleted from the database.
090     * Note that this flags does not always display the current database state,
091     * there is no magical connection between this flag and the database.
092     */
093    private boolean deleted = false;
094
095
096
097
098
099    /**
100     * Get the value of jobId.
101     *
102     * @return int
103     */
104    public int getJobId() 
105    {
106        
107        return jobId;
108    }
109
110    /**
111     * Set the value of jobId.
112     *
113     * @param v new value
114     */
115    public void setJobId(int v)
116    {
117        if (this.jobId != v)
118        {
119            setModified(true);
120        }
121
122        this.jobId = v;
123
124
125    }
126    
127    /**
128     * Get the value of second.
129     *
130     * @return int
131     */
132    public int getSecond() 
133    {
134        
135        return second;
136    }
137
138    /**
139     * Set the value of second.
140     *
141     * @param v new value
142     */
143    public void setSecond(int v)
144    {
145        if (this.second != v)
146        {
147            setModified(true);
148        }
149
150        this.second = v;
151
152
153    }
154    
155    /**
156     * Get the value of minute.
157     *
158     * @return int
159     */
160    public int getMinute() 
161    {
162        
163        return minute;
164    }
165
166    /**
167     * Set the value of minute.
168     *
169     * @param v new value
170     */
171    public void setMinute(int v)
172    {
173        if (this.minute != v)
174        {
175            setModified(true);
176        }
177
178        this.minute = v;
179
180
181    }
182    
183    /**
184     * Get the value of hour.
185     *
186     * @return int
187     */
188    public int getHour() 
189    {
190        
191        return hour;
192    }
193
194    /**
195     * Set the value of hour.
196     *
197     * @param v new value
198     */
199    public void setHour(int v)
200    {
201        if (this.hour != v)
202        {
203            setModified(true);
204        }
205
206        this.hour = v;
207
208
209    }
210    
211    /**
212     * Get the value of weekDay.
213     *
214     * @return int
215     */
216    public int getWeekDay() 
217    {
218        
219        return weekDay;
220    }
221
222    /**
223     * Set the value of weekDay.
224     *
225     * @param v new value
226     */
227    public void setWeekDay(int v)
228    {
229        if (this.weekDay != v)
230        {
231            setModified(true);
232        }
233
234        this.weekDay = v;
235
236
237    }
238    
239    /**
240     * Get the value of dayOfMonth.
241     *
242     * @return int
243     */
244    public int getDayOfMonth() 
245    {
246        
247        return dayOfMonth;
248    }
249
250    /**
251     * Set the value of dayOfMonth.
252     *
253     * @param v new value
254     */
255    public void setDayOfMonth(int v)
256    {
257        if (this.dayOfMonth != v)
258        {
259            setModified(true);
260        }
261
262        this.dayOfMonth = v;
263
264
265    }
266    
267    /**
268     * Get the value of task.
269     *
270     * @return String
271     */
272    public String getTask() 
273    {
274        
275        return task;
276    }
277
278    /**
279     * Set the value of task.
280     *
281     * @param v new value
282     */
283    public void setTask(String v)
284    {
285        if (!ObjectUtils.equals(this.task, v))
286        {
287            setModified(true);
288        }
289
290        this.task = v;
291
292
293    }
294    
295    /**
296     * Get the value of email.
297     *
298     * @return String
299     */
300    public String getEmail() 
301    {
302        
303        return email;
304    }
305
306    /**
307     * Set the value of email.
308     *
309     * @param v new value
310     */
311    public void setEmail(String v)
312    {
313        if (!ObjectUtils.equals(this.email, v))
314        {
315            setModified(true);
316        }
317
318        this.email = v;
319
320
321    }
322    
323    /**
324     * Get the value of property.
325     *
326     * @return byte[]
327     */
328    public byte[] getProperty() 
329    {
330        
331        return property;
332    }
333
334    /**
335     * Set the value of property.
336     *
337     * @param v new value
338     */
339    public void setProperty(byte[] v)
340    {
341        if (!ObjectUtils.equals(this.property, v))
342        {
343            setModified(true);
344        }
345
346        this.property = v;
347
348
349    }
350    
351
352    /**
353     * Returns whether the object has ever been saved.  This will
354     * be false, if the object was retrieved from storage or was created
355     * and then saved.
356     *
357     * @return true, if the object has never been persisted.
358     */
359    public boolean isNew()
360    {
361        return isNew;
362    }
363
364    /**
365     * Sets whether the object has ever been saved.
366     *
367     * @param isNew true if the object has never been saved, false otherwise.
368     */
369    public void setNew(boolean isNew)
370    {
371        this.isNew = isNew;
372    }
373
374    /**
375     * Returns whether the object has been modified.
376     *
377     * @return True if the object has been modified.
378     */
379    public boolean isModified()
380    {
381        return modified;
382    }
383
384    /**
385     * Sets whether the object has been modified.
386     *
387     * @param modified true if the object has been modified, false otherwise.
388     */
389    public void setModified(boolean modified)
390    {
391        this.modified = modified;
392    }
393
394    /**
395     * Sets the modified state for the object to be false.
396     */
397    public void resetModified()
398    {
399        modified = false;
400    }
401
402
403    /**
404     * Returns whether this object is currently saving.
405     *
406     * @return true if this object is currently saving, false otherwise.
407     */
408    public boolean isSaving()
409    {
410        return saving;
411    }
412
413    /**
414     * Sets whether this object is currently saving.
415     *
416     * @param saving true if this object is currently saving, false otherwise.
417     */
418    public void setSaving(boolean saving)
419    {
420        this.saving = saving;
421    }
422
423
424    /**
425     * Returns whether this object is currently being loaded from the database.
426     *
427     * @return true if this object is currently loading, false otherwise.
428     */
429    public boolean isLoading()
430    {
431        return loading;
432    }
433
434    /**
435     * Sets whether this object is currently being loaded from the database.
436     *
437     * @param loading true if this object is currently loading, false otherwise.
438     */
439    public void setLoading(boolean loading)
440    {
441        this.loading = loading;
442    }
443
444
445    /**
446     * Returns whether this object was deleted from the database.
447     * Note that this getter does not automatically reflect database state,
448     * it will be set to true by Torque if doDelete() was called with this 
449     * object. Bulk deletes and deletes via primary key do not change
450     * this flag. Also, if doDelete() was called on an object which does
451     * not exist in the database, the deleted flag is set to true even if
452     * it was not deleted.
453     *
454     * @return true if this object was deleted, false otherwise.
455     */
456    public boolean isDeleted()
457    {
458        return deleted;
459    }
460
461    /**
462     * Sets whether this object was deleted from the database.
463     *
464     * @param deleted true if this object was deleted, false otherwise.
465     */
466    public void setDeleted(boolean deleted)
467    {
468        this.deleted = deleted;
469    }
470
471
472
473
474
475
476
477
478    /**
479     * Stores an object in the database.  If the object is new,
480     * it is inserted; otherwise an update is performed.
481     *
482     * @param toSave the object to be saved, not null.
483     *
484     * @throws TorqueException if an error occurs during saving.
485     */
486    public void save() throws TorqueException
487    {
488        save(JobEntryTorquePeer.DATABASE_NAME);
489    }
490
491    /**
492     * Stores an object in the database.  If the object is new,
493     * it is inserted; otherwise an update is performed.
494     *
495     * @param toSave the object to be saved, not null.
496     * @param dbName the name of the database to which the object
497     *        should be saved.
498     *
499     * @throws TorqueException if an error occurs during saving.
500     */
501    public void save(String dbName) 
502            throws TorqueException
503    {
504        Connection con = null;
505        try
506        {
507            con = Transaction.begin(dbName);
508            save(con);
509            Transaction.commit(con);
510        }
511        catch(TorqueException e)
512        {
513            Transaction.safeRollback(con);
514            throw e;
515        }
516    }
517
518    /**
519     * Stores an object in the database.  If the object is new,
520     * it is inserted; otherwise an update is performed.  This method
521     * is meant to be used as part of a transaction, otherwise use
522     * the save() method and the connection details will be handled
523     * internally.
524     *
525     * @param toSave the object to be saved, not null.
526     * @param con the connection to use for saving the object, not null.
527     *
528     * @throws TorqueException if an error occurs during saving.
529     */
530    public void save(Connection con) 
531            throws TorqueException
532    {
533        if (isSaving())
534        {
535            return;
536        }
537        try
538        {
539            setSaving(true);
540            // If this object has been modified, then save it to the database.
541            if (isModified())
542            {
543                if (isNew())
544                {
545                    JobEntryTorquePeer.doInsert((JobEntryTorque) this, con);
546                    setNew(false);
547                }
548                else
549                {
550                    JobEntryTorquePeer.doUpdate((JobEntryTorque) this, con);
551                }
552            }
553
554        }
555        finally
556        {
557            setSaving(false);
558        }
559    }
560
561
562
563
564    /**
565     * Set the PrimaryKey using ObjectKey.
566     *
567     * @param key jobId ObjectKey
568     */
569    public void setPrimaryKey(ObjectKey key)
570        
571    {
572        setJobId(((NumberKey) key).intValue());
573    }
574
575    /**
576     * Set the PrimaryKey using a String.
577     *
578     * @param key
579     */
580    public void setPrimaryKey(String key) 
581    {
582        setJobId(Integer.parseInt(key));
583    }
584
585
586    /**
587     * returns an id that differentiates this object from others
588     * of its class.
589     */
590    public ObjectKey getPrimaryKey()
591    {
592        return SimpleKey.keyFor(getJobId());
593    }
594
595
596
597    /**
598     * Makes a copy of this object.
599     * It creates a new object filling in the simple attributes.
600     * It then fills all the association collections and sets the
601     * related objects to isNew=true.
602     */
603    public JobEntryTorque copy() throws TorqueException
604    {
605        return copy(true);
606    }
607
608    /**
609     * Makes a copy of this object using a connection.
610     * It creates a new object filling in the simple attributes.
611     * It then fills all the association collections and sets the
612     * related objects to isNew=true.
613     *
614     * @param con the database connection to read associated objects.
615     */
616    public JobEntryTorque copy(Connection con) throws TorqueException
617    {
618        return copy(true, con);
619    }
620
621    /**
622     * Makes a copy of this object.
623     * It creates a new object filling in the simple attributes.
624     * If the parameter deepcopy is true, it then fills all the
625     * association collections and sets the related objects to
626     * isNew=true.
627     *
628     * @param deepcopy whether to copy the associated objects.
629     */
630    public JobEntryTorque copy(boolean deepcopy) throws TorqueException
631    {
632        JobEntryTorque jobEntryTorque = new JobEntryTorque();
633
634        return copyInto(jobEntryTorque, deepcopy);
635    }
636
637    /**
638     * Makes a copy of this object using connection.
639     * It creates a new object filling in the simple attributes.
640     * If the parameter deepcopy is true, it then fills all the
641     * association collections and sets the related objects to
642     * isNew=true.
643     *
644     * @param deepcopy whether to copy the associated objects.
645     * @param con the database connection to read associated objects.
646     */
647    public JobEntryTorque copy(boolean deepcopy, Connection con) throws TorqueException
648    {
649        JobEntryTorque jobEntryTorque = new JobEntryTorque();
650
651        return copyInto(jobEntryTorque, deepcopy, con);
652    }
653  
654    /**
655     * Fills the copyObj with the contents of this object.
656     * The associated objects are also copied and treated as new objects.
657     *
658     * @param copyObj the object to fill.
659     */
660    public JobEntryTorque copyInto(JobEntryTorque copyObj) throws TorqueException
661    {
662        return copyInto(copyObj, true);
663    }
664
665    /**
666     * Fills the copyObj with the contents of this object using connection.
667     * The associated objects are also copied and treated as new objects.
668     *
669     * @param copyObj the object to fill.
670     * @param con the database connection to read associated objects.
671     */
672    public JobEntryTorque copyInto(JobEntryTorque copyObj, Connection con) throws TorqueException
673    {
674        return copyInto(copyObj, true, con);
675    }
676  
677    /**
678     * Fills the copyObj with the contents of this object.
679     * If deepcopy is true, The associated objects are also copied
680     * and treated as new objects.
681     *
682     * @param copyObj the object to fill.
683     * @param deepcopy whether the associated objects should be copied.
684     */
685    protected JobEntryTorque copyInto(JobEntryTorque copyObj, boolean deepcopy) throws TorqueException
686    {
687        copyObj.setJobId(0);
688        copyObj.setSecond(second);
689        copyObj.setMinute(minute);
690        copyObj.setHour(hour);
691        copyObj.setWeekDay(weekDay);
692        copyObj.setDayOfMonth(dayOfMonth);
693        copyObj.setTask(task);
694        copyObj.setEmail(email);
695        copyObj.setProperty(property);
696
697        if (deepcopy)
698        {
699        }
700        return copyObj;
701    }
702        
703    
704    /**
705     * Fills the copyObj with the contents of this object using connection.
706     * If deepcopy is true, The associated objects are also copied
707     * and treated as new objects.
708     *
709     * @param copyObj the object to fill.
710     * @param deepcopy whether the associated objects should be copied.
711     * @param con the database connection to read associated objects.
712     */
713    public JobEntryTorque copyInto(JobEntryTorque copyObj, boolean deepcopy, Connection con) throws TorqueException
714    {
715        copyObj.setJobId(0);
716        copyObj.setSecond(second);
717        copyObj.setMinute(minute);
718        copyObj.setHour(hour);
719        copyObj.setWeekDay(weekDay);
720        copyObj.setDayOfMonth(dayOfMonth);
721        copyObj.setTask(task);
722        copyObj.setEmail(email);
723        copyObj.setProperty(property);
724
725        if (deepcopy)
726        {
727        }
728        return copyObj;
729    }
730
731    /** The Peer class */
732    private static final org.apache.turbine.services.schedule.JobEntryTorquePeer peer
733            = new org.apache.turbine.services.schedule.JobEntryTorquePeer();
734
735    /**
736     * returns a peer instance associated with this om.  Since Peer classes
737     * are not to have any instance attributes, this method returns the
738     * same instance for all member of this class. The method could therefore
739     * be static, but this would prevent one from overriding the behavior.
740     */
741    public org.apache.turbine.services.schedule.JobEntryTorquePeer getPeer()
742    {
743        return peer;
744    }
745
746    /**
747     * Retrieves the TableMap object related to this Table data without
748     * compiler warnings of using getPeer().getTableMap().
749     *
750     * @return The associated TableMap object.
751     */
752    public TableMap getTableMap() throws TorqueException
753    {
754        return org.apache.turbine.services.schedule.JobEntryTorquePeer.getTableMap();
755    }
756
757
758
759    public String toString()
760    {
761        StringBuffer str = new StringBuffer();
762        str.append("JobEntryTorque:\n");
763        str.append("jobId = ")
764           .append(getJobId())
765           .append("\n");
766        str.append("second = ")
767           .append(getSecond())
768           .append("\n");
769        str.append("minute = ")
770           .append(getMinute())
771           .append("\n");
772        str.append("hour = ")
773           .append(getHour())
774           .append("\n");
775        str.append("weekDay = ")
776           .append(getWeekDay())
777           .append("\n");
778        str.append("dayOfMonth = ")
779           .append(getDayOfMonth())
780           .append("\n");
781        str.append("task = ")
782           .append(getTask())
783           .append("\n");
784        str.append("email = ")
785           .append(getEmail())
786           .append("\n");
787        str.append("property = ")
788           .append("<binary>")
789           .append("\n");
790        return(str.toString());
791    }
792
793    /**
794     * Compares the primary key of this instance with the key of another.
795     *
796     * @param toCompare The object to compare to.
797     * @return Whether the primary keys are equal and the object have the
798     *         same class.
799     */
800    public boolean equals(Object toCompare)
801    {
802        if (toCompare == null)
803        {
804            return false;
805        }
806        if (this == toCompare)
807        {
808            return true;
809        }
810        if (!getClass().equals(toCompare.getClass()))
811        {
812            return false;
813        }
814        JobEntryTorque other = (JobEntryTorque) toCompare;
815        if (getPrimaryKey() == null || other.getPrimaryKey() == null)
816        {
817            return false;
818        }
819        return getPrimaryKey().equals(other.getPrimaryKey());
820    }
821
822    /**
823     * If the primary key is not <code>null</code>, return the hashcode of the
824     * primary key.  Otherwise calls <code>Object.hashCode()</code>.
825     *
826     * @return an <code>int</code> value
827     */
828    public int hashCode()
829    {
830        ObjectKey ok = getPrimaryKey();
831        if (ok == null)
832        {
833            return super.hashCode();
834        }
835
836        return ok.hashCode();
837    }
838
839
840
841    /**
842     * Compares the content of this object to another object
843     *
844     * @param toCompare The object to compare to.
845     * @return true if all of the columns in the other object have 
846     *         the same value as the objects in this class.
847     */
848    public boolean valueEquals(JobEntryTorque toCompare)
849    {
850        if (toCompare == null)
851        {
852            return false;
853        }
854        if (this == toCompare)
855        {
856            return true;
857        }
858        if (this.jobId != toCompare.getJobId())
859        {
860            return false;
861        }
862        if (this.second != toCompare.getSecond())
863        {
864            return false;
865        }
866        if (this.minute != toCompare.getMinute())
867        {
868            return false;
869        }
870        if (this.hour != toCompare.getHour())
871        {
872            return false;
873        }
874        if (this.weekDay != toCompare.getWeekDay())
875        {
876            return false;
877        }
878        if (this.dayOfMonth != toCompare.getDayOfMonth())
879        {
880            return false;
881        }
882        if (!ObjectUtils.equals(this.task, toCompare.getTask()))
883        {
884            return false;
885        }
886        if (!ObjectUtils.equals(this.email, toCompare.getEmail()))
887        {
888            return false;
889        }
890        if (!ObjectUtils.equals(this.property, toCompare.getProperty()))
891        {
892            return false;
893        }
894        return true;
895    }
896
897
898
899}