ramc 01/03/18 22:27:49 Modified: src/java/org/apache/cornerstone/services/scheduler Trigger.java TimeTrigger.java PeriodicTimeTrigger.java CronTimeTrigger.java Log: Used reset() (instead of clonning), to reset the trigger. Revision Changes Path 1.2 +6 -0 jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/Trigger.java Index: Trigger.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/Trigger.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Trigger.java 2001/02/22 07:51:35 1.1 +++ Trigger.java 2001/03/19 06:27:49 1.2 @@ -12,7 +12,13 @@ * Triggers can be time-based, event-based or other. * * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a> + * @author <a href="mailto:[EMAIL PROTECTED]">Ram Chidambaram</a> */ public interface Trigger { + /** + * Reset the Trigger. The Triggers can be time-based, + * event-based or other. + */ + void reset(); } 1.3 +2 -12 jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/TimeTrigger.java Index: TimeTrigger.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/TimeTrigger.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- TimeTrigger.java 2001/03/15 17:10:42 1.2 +++ TimeTrigger.java 2001/03/19 06:27:49 1.3 @@ -8,14 +8,13 @@ package org.apache.cornerstone.services.scheduler; /** - * This is the marker interface for Triggers. - * Triggers can be time-based, event-based or other. + * This is the marker interface for time-based Triggers. * * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a> * @author <a href="mailto:[EMAIL PROTECTED]">Ram Chidambaram</a> */ public interface TimeTrigger - extends Trigger, Cloneable + extends Trigger { /** * Retrieve the next time at trigger activates relative to another time. @@ -23,13 +22,4 @@ * @return the time at which the trigger activates */ long getTimeAfter( long time ); - - /** - * Get a clone of the original TimeTrigger with adjusted time sensitive info. - * - * @return a new copy of the TimeTrigger - * @exception CloneNotSupportedException if trigger cannot be cloned - */ - TimeTrigger getClone() - throws CloneNotSupportedException; } 1.4 +24 -21 jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/PeriodicTimeTrigger.java Index: PeriodicTimeTrigger.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/PeriodicTimeTrigger.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- PeriodicTimeTrigger.java 2001/03/16 02:32:29 1.3 +++ PeriodicTimeTrigger.java 2001/03/19 06:27:49 1.4 @@ -16,25 +16,16 @@ public class PeriodicTimeTrigger implements TimeTrigger { - protected final long m_startTime; + protected final long m_offset; protected final long m_period; - private final long m_triggerTime; + private long m_triggerTime; public PeriodicTimeTrigger( final int offset, final int period ) { - final long current = System.currentTimeMillis(); - - if( -1 == offset ) - { - m_triggerTime = current; - } - else - { - m_triggerTime = current + offset; - } - - m_startTime = offset; + m_offset = offset; m_period = period; + + reset(); } /** @@ -57,22 +48,34 @@ } /** - * Get a clone of the original TimeTrigger with adjusted time sensitive info. - * - * @return a new copy of this TimeTrigger + * Reset the original TimeTrigger. + * This will recalculate the activation time for this trigger. */ - public TimeTrigger getClone() + public void reset() { - return new PeriodicTimeTrigger( (int) m_startTime, (int) m_period ); + final long current = System.currentTimeMillis(); + + if( -1 == m_offset ) + { + m_triggerTime = current; + } + else + { + m_triggerTime = current + m_offset; + } } public String toString() { final StringBuffer sb = new StringBuffer(); sb.append( "PeriodicTimeTrigger[ " ); + + sb.append( "trigger time=" ); + sb.append( m_triggerTime ); + sb.append( " " ); - sb.append( "start=" ); - sb.append( m_startTime ); + sb.append( "offset=" ); + sb.append( m_offset ); sb.append( " " ); if( -1 != m_period ) 1.3 +3 -6 jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/CronTimeTrigger.java Index: CronTimeTrigger.java =================================================================== RCS file: /home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/CronTimeTrigger.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- CronTimeTrigger.java 2001/03/15 17:10:45 1.2 +++ CronTimeTrigger.java 2001/03/19 06:27:49 1.3 @@ -227,14 +227,11 @@ } /** - * Get a clone of the original TimeTrigger. - * - * @return a new copy of this TimeTrigger + * Reset the cron-trigger. */ - public TimeTrigger getClone() - throws CloneNotSupportedException + public void reset() { - return (TimeTrigger) this.clone(); + // nothing to reset for CronTimeTrigger } public String toString() --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]