Subversion Repository Public Repository

litesoft

Diff Revisions 857 vs 858 for /trunk/Java/core/Anywhere/src/org/litesoft/core/delayed/nonpublic/AbstractDelayedTimedRunnableRunner.java

Diff revisions: vs.
  @@ -2,18 +2,20 @@
2 2 package org.litesoft.core.delayed.nonpublic;
3 3
4 4 import org.litesoft.core.delayed.*;
5 + import org.litesoft.core.simpletypes.temporal.*;
5 6 import org.litesoft.core.typeutils.*;
6 - import org.litesoft.core.typeutils.gregorian.*;
7 7 import org.litesoft.core.util.*;
8 8
9 9 public abstract class AbstractDelayedTimedRunnableRunner implements DelayedTimedRunnableRunner
10 10 {
11 - protected TimedRunnable mTimedRunnable = null;
11 + protected final MillisecTimeSource mMillisecTimeSource;
12 12 private UnexpectedExceptionHandler mUnexpectedExceptionHandler;
13 + protected TimedRunnable mTimedRunnable = null;
13 14
14 - public AbstractDelayedTimedRunnableRunner( UnexpectedExceptionHandler pUnexpectedExceptionHandler )
15 + public AbstractDelayedTimedRunnableRunner( MillisecTimeSource pMillisecTimeSource, UnexpectedExceptionHandler pUnexpectedExceptionHandler )
15 16 {
16 - Objects.assertNotNull( "UnexpectedExceptionHandler", mUnexpectedExceptionHandler = pUnexpectedExceptionHandler );
17 + mMillisecTimeSource = MillisecTimeSource.deNull( pMillisecTimeSource );
18 + mUnexpectedExceptionHandler = pUnexpectedExceptionHandler;
17 19 }
18 20
19 21 public DelayedTimedRunnableRunner initialize( TimedRunnable pTimedRunnable, UnexpectedExceptionHandler pUnexpectedExceptionHandler )
  @@ -26,6 +28,12 @@
26 28 return this;
27 29 }
28 30
31 + @Override
32 + public MillisecTimeSource getMillisecTimeSource()
33 + {
34 + return mMillisecTimeSource;
35 + }
36 +
29 37 public DelayedTimedRunnableRunner scheduleFor( long pWhenTimeInMilliSecs )
30 38 {
31 39 cancel();
  @@ -38,7 +46,7 @@
38 46
39 47 private boolean LLscheduleFor( long pWhenTimeInMilliSecs )
40 48 {
41 - long zNowInMilliSecs = Dates.now().getTime();
49 + long zNowInMilliSecs = mMillisecTimeSource.now();
42 50 if ( pWhenTimeInMilliSecs <= zNowInMilliSecs )
43 51 {
44 52 return true;
  @@ -75,7 +83,7 @@
75 83 }
76 84 return;
77 85 }
78 - if ( (zAgain == null) || !LLscheduleFor( zAgain.getOnOrAfter() ) )
86 + if ( (zAgain == null) || !LLscheduleFor( zAgain.getOnOrAfter( mMillisecTimeSource ) ) )
79 87 {
80 88 runnable = null;
81 89 }