[jboss-svn-commits] JBL Code SVN: r32852 - 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
Thu May 13 06:48:01 EDT 2010


Author: ge0ffrey
Date: 2010-05-13 06:48:01 -0400 (Thu, 13 May 2010)
New Revision: 32852

Modified:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringEvaluatorHelper.java
Log:
nurse rostering: line contains filter

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-05-13 10:32:22 UTC (rev 32851)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringEvaluatorHelper.java	2010-05-13 10:48:01 UTC (rev 32852)
@@ -3,6 +3,7 @@
 import java.io.File;
 import java.io.FilterOutputStream;
 import java.io.IOException;
+import java.io.OutputStream;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
@@ -17,8 +18,15 @@
 
     private static final String INPUT_FILE_PREFIX = "long01";
     private static final String OUTPUT_FILE_SUFFIX = "_tmp";
+    private static final String DEFAULT_LINE_CONTAINS_FILTER = null;
 
     public static void main(String[] args) {
+        String lineContainsFilter;
+        if (args.length > 0) {
+            lineContainsFilter = args[0];
+        } else {
+            lineContainsFilter = DEFAULT_LINE_CONTAINS_FILTER;
+        }
         NurseRosteringApp nurseRosteringApp = new NurseRosteringApp();
         SolutionBusiness solutionBusiness = nurseRosteringApp.createSolutionBusiness();
         Process process = null;
@@ -31,7 +39,7 @@
             String command = "java -jar evaluator.jar " + inputFile.getAbsolutePath()
                     + " " + outputFile.getAbsolutePath();
             process = Runtime.getRuntime().exec(command, null, evaluatorDir);
-            EvaluatorSummaryFilterOutputStream out = new EvaluatorSummaryFilterOutputStream(outputFile.getName());
+            EvaluatorSummaryFilterOutputStream out = new EvaluatorSummaryFilterOutputStream(outputFile.getName(), lineContainsFilter);
             IOUtils.copy(process.getInputStream(), out);
             IOUtils.copy(process.getErrorStream(), System.err);
             out.writeResults();
@@ -44,25 +52,26 @@
         }
     }
 
-    private static class EvaluatorSummaryFilterOutputStream extends FilterOutputStream {
+    private static class EvaluatorSummaryFilterOutputStream extends OutputStream {
 
         private String name;
+        private String lineContainsFilter;
 
         private StringBuilder lineBuffer = new StringBuilder(120);
         private Map<String, int[]> excessMap = new LinkedHashMap<String, int[]>();
         private String lastEmployeeCode = null;
 
-        private EvaluatorSummaryFilterOutputStream(String name) {
-            super(System.out);
+        private EvaluatorSummaryFilterOutputStream(String name, String lineContainsFilter) {
+            super();
             this.name = name;
+            this.lineContainsFilter = lineContainsFilter;
         }
 
-        @Override
         public void write(int c) throws IOException {
-            super.write(c);
             if (c == '\n') {
-                processLine(lineBuffer.toString());
+                String line = lineBuffer.toString();
                 lineBuffer.delete(0, lineBuffer.length());
+                processLine(line);
             } else {
                 lineBuffer.append((char) c);
             }
@@ -88,8 +97,11 @@
             } else if (line.contains("Penalty:")) {
                 lastEmployeeCode = null;
             }
-            if (lastEmployeeCode != null) {
-                System.out.print("E(" + lastEmployeeCode + ")  ");
+            if (lineContainsFilter == null || line.contains(lineContainsFilter)) {
+                if (lastEmployeeCode != null) {
+                    System.out.print("E(" + lastEmployeeCode + ")  ");
+                }
+                System.out.println(line);
             }
         }
 



More information about the jboss-svn-commits mailing list