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]