[jboss-svn-commits] JBL Code SVN: r32387 - labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Apr 4 07:23:09 EDT 2010


Author: ge0ffrey
Date: 2010-04-04 07:23:09 -0400 (Sun, 04 Apr 2010)
New Revision: 32387

Modified:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringEvaluatorHelper.java
Log:
nurse rostering: evaluator helper (employee per line)

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringEvaluatorHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringEvaluatorHelper.java	2010-04-04 05:42:18 UTC (rev 32386)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringEvaluatorHelper.java	2010-04-04 11:23:09 UTC (rev 32387)
@@ -2,8 +2,10 @@
 
 import java.io.File;
 import java.io.FilterOutputStream;
+import java.io.FilterWriter;
 import java.io.IOException;
-import java.io.OutputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
@@ -47,28 +49,27 @@
 
     private static class EvaluatorSummaryFilterOutputStream extends FilterOutputStream {
 
-        private static final String EXCESS_PATTERN = "excess = ";
-        
         private StringBuilder lineBuffer = new StringBuilder(120);
         private Map<String, int[]> excessMap = new LinkedHashMap<String, int[]>();
+        private String lastEmployeeCode = null;
 
         private EvaluatorSummaryFilterOutputStream() {
             super(System.out);
         }
 
         @Override
-        public void write(int b) throws IOException {
-            super.write(b);
-            if (b == '\n') {
+        public void write(int c) throws IOException {
+            super.write(c);
+            if (c == '\n') {
                 processLine(lineBuffer.toString());
                 lineBuffer.delete(0, lineBuffer.length());
             } else {
-                lineBuffer.append((char) b);
+                lineBuffer.append((char) c);
             }
         }
 
         private void processLine(String line) {
-            int excessIndex = line.indexOf(EXCESS_PATTERN);
+            int excessIndex = line.indexOf("excess = ");
             if (excessIndex >= 0) {
                 String key = line.substring(0, excessIndex);
                 int value = Integer.parseInt(line.substring(excessIndex).replaceAll("excess = (\\d+) .*", "$1"));
@@ -81,6 +82,15 @@
                     excess[1] += value;
                 }
             }
+            int employeeIndex = line.indexOf("Employee: ");
+            if (employeeIndex >= 0) {
+                lastEmployeeCode = line.substring(employeeIndex).replaceAll("Employee: (.+)", "$1");
+            } else if (line.contains("Penalty:")) {
+                lastEmployeeCode = null;
+            }
+            if (lastEmployeeCode != null) {
+                System.out.print("E(" + lastEmployeeCode + ")  ");
+            }
         }
 
         public void writeResults() {



More information about the jboss-svn-commits mailing list