diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/termination/TimeTermination.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/termination/TimeTermination.java index 39bfd008..99c83930 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/termination/TimeTermination.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/termination/TimeTermination.java @@ -41,9 +41,9 @@ import java.util.Collection; */ public class TimeTermination implements PrematureAlgorithmTermination, AlgorithmStartsListener { - public static interface TimeGetter { + public interface TimeGetter { - public long getCurrentTime(); + long getCurrentTime(); } @@ -51,14 +51,7 @@ public class TimeTermination implements PrematureAlgorithmTermination, Algorithm private final long timeThreshold; - private TimeGetter timeGetter = new TimeGetter() { - - @Override - public long getCurrentTime() { - return System.currentTimeMillis(); - } - - }; + private TimeGetter timeGetter = System::currentTimeMillis; private long startTime; @@ -91,7 +84,7 @@ public class TimeTermination implements PrematureAlgorithmTermination, Algorithm this.startTime = startTime; } - private long now() { + public long now() { return timeGetter.getCurrentTime(); } @@ -100,4 +93,12 @@ public class TimeTermination implements PrematureAlgorithmTermination, Algorithm start(timeGetter.getCurrentTime()); } + public long getRemainingTime() { + return timeThreshold - (now() - startTime); + } + + public long getStartTime() { + return startTime; + } + }