[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