View Javadoc

1   package cz.cuni.amis.pogamut.sposh.engine.timer;
2   
3   import java.util.Calendar;
4   
5   /**
6    * Timer what allows me to skip forward in time or suspend time for a while.
7    * Very useful for tests or debugging.
8    * @author Honza
9    */
10  public class DebugTimer implements ITimer {
11      long subtract = 0;
12  
13      boolean suspended = false;
14      long suspendedTime = 0;
15  
16      @Override
17      public void init() {
18      }
19  
20      @Override
21      public void suspend() {
22          suspendedTime = Calendar.getInstance().getTimeInMillis();
23      }
24  
25      @Override
26      public boolean isSuspended() {
27          return suspended;
28      }
29  
30      @Override
31      public void resume() {
32          if (suspended) {
33              subtract += Calendar.getInstance().getTimeInMillis() - suspendedTime;
34              suspendedTime = 0;
35              suspended = false;
36          }
37      }
38  
39      public void addTime(long time2add) {
40          subtract -= time2add;
41      }
42  
43      @Override
44      public long getTime() {
45          if (suspended)
46              return suspendedTime - subtract;
47  
48          return Calendar.getInstance().getTimeInMillis() - subtract;
49      }
50  
51  }