[jboss-svn-commits] JBL Code SVN: r29014 - in labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core: event and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Aug 21 10:11:01 EDT 2009


Author: ge0ffrey
Date: 2009-08-21 10:11:01 -0400 (Fri, 21 Aug 2009)
New Revision: 29014

Modified:
   labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/Solver.java
   labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/event/BestSolutionChangedEvent.java
   labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/event/SolverEventSupport.java
   labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/bestsolution/BestSolutionRecaller.java
Log:
javadocs + add timeMillisSpend to BestSolutionChangedEvent

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/Solver.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/Solver.java	2009-08-21 13:40:47 UTC (rev 29013)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/Solver.java	2009-08-21 14:11:01 UTC (rev 29014)
@@ -22,6 +22,7 @@
     Solution getBestSolution();
 
     /**
+     * TODO timeMillisSpend should not continue to increase after the solver has been terminated
      * @return the amount of millis spend since this solver started
      */
     long getTimeMillisSpend();

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/event/BestSolutionChangedEvent.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/event/BestSolutionChangedEvent.java	2009-08-21 13:40:47 UTC (rev 29013)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/event/BestSolutionChangedEvent.java	2009-08-21 14:11:01 UTC (rev 29014)
@@ -3,6 +3,7 @@
 import java.util.EventObject;
 
 import org.drools.solver.core.solution.Solution;
+import org.drools.solver.core.Solver;
 
 /**
  * Delivered when the best solution changes during solving.
@@ -10,18 +11,27 @@
  */
 public class BestSolutionChangedEvent extends EventObject {
 
-    public final Solution newBestSolution;
+    private final long timeMillisSpend;
+    private final Solution newBestSolution;
 
     /**
      * Internal API.
      * @param newBestSolution never null
      */
-    public BestSolutionChangedEvent(Solution newBestSolution) {
-        super(newBestSolution); // TODO is this really the source of this event?
+    public BestSolutionChangedEvent(Solver source, long timeMillisSpend, Solution newBestSolution) {
+        super(source);
+        this.timeMillisSpend = timeMillisSpend;
         this.newBestSolution = newBestSolution;
     }
 
     /**
+     * @return the amount of millis spend since the solver started untill that best solution was found
+     */
+    public long getTimeMillisSpend() {
+        return timeMillisSpend;
+    }
+
+    /**
      * @return never null
      */
     public Solution getNewBestSolution() {

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/event/SolverEventSupport.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/event/SolverEventSupport.java	2009-08-21 13:40:47 UTC (rev 29013)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/event/SolverEventSupport.java	2009-08-21 14:11:01 UTC (rev 29014)
@@ -3,6 +3,7 @@
 import java.util.Iterator;
 
 import org.drools.solver.core.solution.Solution;
+import org.drools.solver.core.Solver;
 import org.drools.event.AbstractEventSupport;
 import org.drools.event.RuleBaseEventListener;
 import org.drools.event.BeforePackageAddedEvent;
@@ -13,10 +14,11 @@
  */
 public class SolverEventSupport extends AbstractEventSupport<SolverEventListener> {
 
-    public void fireBestSolutionChanged(Solution newBestSolution) {
+    public void fireBestSolutionChanged(Solver source, long timeMillisSpend, Solution newBestSolution) {
         final Iterator<SolverEventListener> iter = getEventListenersIterator();
         if (iter.hasNext()) {
-            final BestSolutionChangedEvent event = new BestSolutionChangedEvent(newBestSolution);
+            final BestSolutionChangedEvent event = new BestSolutionChangedEvent(
+                    source, timeMillisSpend, newBestSolution);
             do {
                 iter.next().bestSolutionChanged(event);
             } while (iter.hasNext());

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/bestsolution/BestSolutionRecaller.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/bestsolution/BestSolutionRecaller.java	2009-08-21 13:40:47 UTC (rev 29013)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/bestsolution/BestSolutionRecaller.java	2009-08-21 14:11:01 UTC (rev 29014)
@@ -60,7 +60,8 @@
             Solution newBestSolution = stepScope.createOrGetClonedSolution();
             localSearchSolverScope.setBestSolution(newBestSolution);
             localSearchSolverScope.setBestScore(newBestSolution.getScore());
-            solverEventSupport.fireBestSolutionChanged(newBestSolution);
+            solverEventSupport.fireBestSolutionChanged(localSearchSolver,
+                    localSearchSolverScope.calculateTimeMillisSpend(), newBestSolution);
         } else {
             logger.info("New score ({}) is not better then last best score ({}).", newScore, bestScore);
         }



More information about the jboss-svn-commits mailing list