[jboss-svn-commits] JBL Code SVN: r33202 - in labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main: java/org/drools/planner/examples/nurserostering/persistence and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun May 30 10:33:05 EDT 2010


Author: ge0ffrey
Date: 2010-05-30 10:33:05 -0400 (Sun, 30 May 2010)
New Revision: 33202

Removed:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType4DaysPattern.java
Modified:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType2DaysPattern.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType3DaysPattern.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringSolutionImporter.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl
Log:
unwantedPatternShiftType 2 and 3 DaysPattern simplified

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType2DaysPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType2DaysPattern.java	2010-05-30 14:13:47 UTC (rev 33201)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType2DaysPattern.java	2010-05-30 14:33:05 UTC (rev 33202)
@@ -8,19 +8,9 @@
 @XStreamAlias("ShiftType2DaysPattern")
 public class ShiftType2DaysPattern extends Pattern {
 
-    private DayOfWeek startDayOfWeek; // null means any
-
     private ShiftType dayIndex0ShiftType;
     private ShiftType dayIndex1ShiftType;
 
-    public DayOfWeek getStartDayOfWeek() {
-        return startDayOfWeek;
-    }
-
-    public void setStartDayOfWeek(DayOfWeek startDayOfWeek) {
-        this.startDayOfWeek = startDayOfWeek;
-    }
-
     public ShiftType getDayIndex0ShiftType() {
         return dayIndex0ShiftType;
     }
@@ -39,8 +29,7 @@
 
     @Override
     public String toString() {
-        return "Work starting on " + startDayOfWeek + " in sequence: "
-                + dayIndex0ShiftType + ", " + dayIndex1ShiftType;
+        return "Work pattern: " + dayIndex0ShiftType + ", " + dayIndex1ShiftType;
     }
 
 }

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType3DaysPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType3DaysPattern.java	2010-05-30 14:13:47 UTC (rev 33201)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType3DaysPattern.java	2010-05-30 14:33:05 UTC (rev 33202)
@@ -8,20 +8,10 @@
 @XStreamAlias("ShiftType3DaysPattern")
 public class ShiftType3DaysPattern extends Pattern {
 
-    private DayOfWeek startDayOfWeek; // null means any
-
     private ShiftType dayIndex0ShiftType;
     private ShiftType dayIndex1ShiftType;
     private ShiftType dayIndex2ShiftType;
 
-    public DayOfWeek getStartDayOfWeek() {
-        return startDayOfWeek;
-    }
-
-    public void setStartDayOfWeek(DayOfWeek startDayOfWeek) {
-        this.startDayOfWeek = startDayOfWeek;
-    }
-
     public ShiftType getDayIndex0ShiftType() {
         return dayIndex0ShiftType;
     }
@@ -48,8 +38,7 @@
 
     @Override
     public String toString() {
-        return "Work starting on " + startDayOfWeek + " in sequence: "
-                + dayIndex0ShiftType + ", " + dayIndex1ShiftType + ", " + dayIndex2ShiftType;
+        return "Work pattern: " + dayIndex0ShiftType + ", " + dayIndex1ShiftType + ", " + dayIndex2ShiftType;
     }
 
 }

Deleted: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType4DaysPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType4DaysPattern.java	2010-05-30 14:13:47 UTC (rev 33201)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType4DaysPattern.java	2010-05-30 14:33:05 UTC (rev 33202)
@@ -1,65 +0,0 @@
-package org.drools.planner.examples.nurserostering.domain;
-
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-
-/**
- * @author Geoffrey De Smet
- */
- at XStreamAlias("ShiftType4DaysPattern")
-public class ShiftType4DaysPattern extends Pattern {
-
-    private DayOfWeek startDayOfWeek; // null means any
-
-    private ShiftType dayIndex0ShiftType;
-    private ShiftType dayIndex1ShiftType;
-    private ShiftType dayIndex2ShiftType;
-    private ShiftType dayIndex3ShiftType;
-
-    public DayOfWeek getStartDayOfWeek() {
-        return startDayOfWeek;
-    }
-
-    public void setStartDayOfWeek(DayOfWeek startDayOfWeek) {
-        this.startDayOfWeek = startDayOfWeek;
-    }
-
-    public ShiftType getDayIndex0ShiftType() {
-        return dayIndex0ShiftType;
-    }
-
-    public void setDayIndex0ShiftType(ShiftType dayIndex0ShiftType) {
-        this.dayIndex0ShiftType = dayIndex0ShiftType;
-    }
-
-    public ShiftType getDayIndex1ShiftType() {
-        return dayIndex1ShiftType;
-    }
-
-    public void setDayIndex1ShiftType(ShiftType dayIndex1ShiftType) {
-        this.dayIndex1ShiftType = dayIndex1ShiftType;
-    }
-
-    public ShiftType getDayIndex2ShiftType() {
-        return dayIndex2ShiftType;
-    }
-
-    public void setDayIndex2ShiftType(ShiftType dayIndex2ShiftType) {
-        this.dayIndex2ShiftType = dayIndex2ShiftType;
-    }
-
-    public ShiftType getDayIndex3ShiftType() {
-        return dayIndex3ShiftType;
-    }
-
-    public void setDayIndex3ShiftType(ShiftType dayIndex3ShiftType) {
-        this.dayIndex3ShiftType = dayIndex3ShiftType;
-    }
-
-    @Override
-    public String toString() {
-        return "Work starting on " + startDayOfWeek + " in sequence: "
-                + dayIndex0ShiftType + ", " + dayIndex1ShiftType + ", " + dayIndex2ShiftType + ", "
-                + dayIndex3ShiftType;
-    }
-
-}

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringSolutionImporter.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringSolutionImporter.java	2010-05-30 14:13:47 UTC (rev 33201)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringSolutionImporter.java	2010-05-30 14:33:05 UTC (rev 33202)
@@ -26,7 +26,6 @@
 import org.drools.planner.examples.nurserostering.domain.ShiftType;
 import org.drools.planner.examples.nurserostering.domain.ShiftType2DaysPattern;
 import org.drools.planner.examples.nurserostering.domain.ShiftType3DaysPattern;
-import org.drools.planner.examples.nurserostering.domain.ShiftType4DaysPattern;
 import org.drools.planner.examples.nurserostering.domain.ShiftTypeSkillRequirement;
 import org.drools.planner.examples.nurserostering.domain.Skill;
 import org.drools.planner.examples.nurserostering.domain.SkillProficiency;
@@ -333,13 +332,10 @@
                             case 3 :
                                 pattern = new ShiftType3DaysPattern();
                                 break;
-                            case 4 :
-                                pattern = new ShiftType4DaysPattern();
-                                break;
                             default:
                                 throw new IllegalArgumentException("A size of PatternEntries ("
                                         + patternEntryElementList.size() + ") of pattern (" + code
-                                        + ") above 4 is not supported.");
+                                        + ") above 3 is not supported.");
                         }
                     }
                     pattern.setId(id);
@@ -449,7 +445,7 @@
                                             + ") the dayOfWeek should be (Any)."
                                             + "\n None of the test data exhibits such a pattern.");
                                 }
-                                castedPattern.setStartDayOfWeek(dayOfWeek);
+                                // castedPattern.setStartDayOfWeek(dayOfWeek);
                             }
                             if (shiftType == null) {
                                 // TODO Support any shiftType too (not needed for competition)
@@ -469,7 +465,14 @@
                         } else if (pattern instanceof ShiftType3DaysPattern) {
                             ShiftType3DaysPattern castedPattern = (ShiftType3DaysPattern) pattern;
                             if (patternEntryIndex == 0) {
-                                castedPattern.setStartDayOfWeek(dayOfWeek);
+                                if (dayOfWeek != null) {
+                                    // TODO Support a specific dayOfWeek too (not needed for competition)
+                                    throw new UnsupportedOperationException("On patternEntryIndex (" + patternEntryIndex
+                                            + ") of FreeBeforeWorkSequence pattern (" + pattern.getCode()
+                                            + ") the dayOfWeek should be (Any)."
+                                            + "\n None of the test data exhibits such a pattern.");
+                                }
+                                // castedPattern.setStartDayOfWeek(dayOfWeek);
                             }
                             if (shiftType == null) {
                                 // TODO Support any shiftType too
@@ -489,32 +492,6 @@
                                     castedPattern.setDayIndex2ShiftType(shiftType);
                                     break;
                             }
-                        } else if (pattern instanceof ShiftType4DaysPattern) {
-                            ShiftType4DaysPattern castedPattern = (ShiftType4DaysPattern) pattern;
-                            if (patternEntryIndex == 0) {
-                                castedPattern.setStartDayOfWeek(dayOfWeek);
-                            }
-                            if (shiftType == null) {
-                                // TODO Support any shiftType too
-                                throw new UnsupportedOperationException("On patternEntryIndex (" + patternEntryIndex
-                                        + ") of FreeBeforeWorkSequence pattern (" + pattern.getCode()
-                                        + ") the shiftType should not be (Any)."
-                                        + "\n None of the test data exhibits such a pattern.");
-                            }
-                            switch (patternEntryIndex) {
-                                case 0 :
-                                    castedPattern.setDayIndex0ShiftType(shiftType);
-                                    break;
-                                case 1 :
-                                    castedPattern.setDayIndex1ShiftType(shiftType);
-                                    break;
-                                case 2 :
-                                    castedPattern.setDayIndex1ShiftType(shiftType);
-                                    break;
-                                case 3 :
-                                    castedPattern.setDayIndex1ShiftType(shiftType);
-                                    break;
-                            }
                         } else {
                             throw new IllegalStateException("Unsupported patternClass (" + pattern.getClass() + ").");
                         }

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl	2010-05-30 14:13:47 UTC (rev 33201)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl	2010-05-30 14:33:05 UTC (rev 33202)
@@ -18,7 +18,6 @@
 import org.drools.planner.examples.nurserostering.domain.ShiftType;
 import org.drools.planner.examples.nurserostering.domain.ShiftType2DaysPattern;
 import org.drools.planner.examples.nurserostering.domain.ShiftType3DaysPattern;
-import org.drools.planner.examples.nurserostering.domain.ShiftType4DaysPattern;
 import org.drools.planner.examples.nurserostering.domain.ShiftTypeSkillRequirement;
 import org.drools.planner.examples.nurserostering.domain.Skill;
 import org.drools.planner.examples.nurserostering.domain.SkillProficiency;
@@ -591,7 +590,6 @@
 rule "unwantedPatternShiftType2DaysPattern"
     when
         $pattern : ShiftType2DaysPattern(
-            $startDayOfWeek : startDayOfWeek,
             $dayIndex0ShiftType : dayIndex0ShiftType,
             $dayIndex1ShiftType : dayIndex1ShiftType
         )
@@ -600,8 +598,7 @@
         )
 
         Assignment(
-            eval($startDayOfWeek == null) || (shiftDateDayOfWeek == $startDayOfWeek),
-            eval($dayIndex0ShiftType == null) || (shiftType == $dayIndex0ShiftType),
+            shiftType == $dayIndex0ShiftType,
             contract == $contract,
             $employee : employee, $firstDayIndex : shiftDateDayIndex
         )
@@ -618,7 +615,6 @@
 rule "unwantedPatternShiftType3DaysPattern"
     when
         $pattern : ShiftType3DaysPattern(
-            $startDayOfWeek : startDayOfWeek,
             $dayIndex0ShiftType : dayIndex0ShiftType,
             $dayIndex1ShiftType : dayIndex1ShiftType,
             $dayIndex2ShiftType : dayIndex2ShiftType
@@ -628,18 +624,17 @@
         )
 
         Assignment(
-            eval($startDayOfWeek == null) || (shiftDateDayOfWeek == $startDayOfWeek),
-            eval($dayIndex0ShiftType == null) || (shiftType == $dayIndex0ShiftType),
+            shiftType == $dayIndex0ShiftType,
             contract == $contract,
             $employee : employee, $firstDayIndex : shiftDateDayIndex
         )
         Assignment(
-            eval($dayIndex1ShiftType == null) || (shiftType == $dayIndex1ShiftType),
+            shiftType == $dayIndex1ShiftType,
             employee == $employee,
             shiftDateDayIndex == ($firstDayIndex + 1)
         )
         Assignment(
-            eval($dayIndex2ShiftType == null) || (shiftType == $dayIndex2ShiftType),
+            shiftType == $dayIndex2ShiftType,
             employee == $employee,
             shiftDateDayIndex == ($firstDayIndex + 2)
         )
@@ -648,46 +643,7 @@
                 $pattern.getWeight(),
                 $employee, $pattern, $firstDayIndex));
 end
-rule "unwantedPatternShiftType4DaysPattern"
-    when
-        $pattern : ShiftType4DaysPattern(
-            $startDayOfWeek : startDayOfWeek,
-            $dayIndex0ShiftType : dayIndex0ShiftType,
-            $dayIndex1ShiftType : dayIndex1ShiftType,
-            $dayIndex2ShiftType : dayIndex2ShiftType,
-            $dayIndex3ShiftType : dayIndex3ShiftType
-        )
-        PatternContractLine(
-            pattern == $pattern, $contract : contract
-        )
 
-        Assignment(
-            eval($startDayOfWeek == null) || (shiftDateDayOfWeek == $startDayOfWeek),
-            eval($dayIndex0ShiftType == null) || (shiftType == $dayIndex0ShiftType),
-            contract == $contract,
-            $employee : employee, $firstDayIndex : shiftDateDayIndex
-        )
-        Assignment(
-            eval($dayIndex1ShiftType == null) || (shiftType == $dayIndex1ShiftType),
-            employee == $employee,
-            shiftDateDayIndex == ($firstDayIndex + 1)
-        )
-        Assignment(
-            eval($dayIndex2ShiftType == null) || (shiftType == $dayIndex2ShiftType),
-            employee == $employee,
-            shiftDateDayIndex == ($firstDayIndex + 2)
-        )
-        Assignment(
-            eval($dayIndex3ShiftType == null) || (shiftType == $dayIndex3ShiftType),
-            employee == $employee,
-            shiftDateDayIndex == ($firstDayIndex + 3)
-        )
-    then
-        insertLogical(new IntConstraintOccurrence("unwantedPatternShiftType4DaysPattern", ConstraintType.NEGATIVE_SOFT,
-                $pattern.getWeight(),
-                $employee, $pattern, $firstDayIndex));
-end
-
 // ############################################################################
 // Calculate score
 // ############################################################################



More information about the jboss-svn-commits mailing list