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]

Reply via email to