[jboss-svn-commits] JBL Code SVN: r33099 - in labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main: resources/org/drools/planner/examples/nurserostering/solver and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed May 26 15:35:55 EDT 2010
Author: ge0ffrey
Date: 2010-05-26 15:35:54 -0400 (Wed, 26 May 2010)
New Revision: 33099
Added:
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/solver/EmployeeWorkSequence.java
Removed:
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/solver/EmployeeConsecutiveAssignment.java
Modified:
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl
Log:
nurse rostering: rename to EmployeeWorkSequence
Deleted: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/solver/EmployeeConsecutiveAssignment.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/solver/EmployeeConsecutiveAssignment.java 2010-05-26 19:31:54 UTC (rev 33098)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/solver/EmployeeConsecutiveAssignment.java 2010-05-26 19:35:54 UTC (rev 33099)
@@ -1,98 +0,0 @@
-package org.drools.planner.examples.nurserostering.domain.solver;
-
-import java.io.Serializable;
-
-import org.apache.commons.lang.builder.CompareToBuilder;
-import org.apache.commons.lang.builder.EqualsBuilder;
-import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.drools.planner.examples.nurserostering.domain.Employee;
-import org.drools.planner.examples.nurserostering.domain.ShiftDate;
-
-/**
- * @author Geoffrey De Smet
- */
-public class EmployeeConsecutiveAssignment implements Comparable<EmployeeConsecutiveAssignment>, Serializable {
-
- private Employee employee;
- private ShiftDate firstShiftDate;
- private ShiftDate lastShiftDate;
-
- public EmployeeConsecutiveAssignment(Employee employee, ShiftDate firstShiftDate, ShiftDate lastShiftDate) {
- this.employee = employee;
- this.firstShiftDate = firstShiftDate;
- this.lastShiftDate = lastShiftDate;
- }
-
- public Employee getEmployee() {
- return employee;
- }
-
- public void setEmployee(Employee employee) {
- this.employee = employee;
- }
-
- public ShiftDate getFirstShiftDate() {
- return firstShiftDate;
- }
-
- public void setFirstShiftDate(ShiftDate firstShiftDate) {
- this.firstShiftDate = firstShiftDate;
- }
-
- public ShiftDate getLastShiftDate() {
- return lastShiftDate;
- }
-
- public void setLastShiftDate(ShiftDate lastShiftDate) {
- this.lastShiftDate = lastShiftDate;
- }
-
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- } else if (o instanceof EmployeeConsecutiveAssignment) {
- EmployeeConsecutiveAssignment other = (EmployeeConsecutiveAssignment) o;
- return new EqualsBuilder()
- .append(employee, other.employee)
- .append(firstShiftDate, other.firstShiftDate)
- .append(lastShiftDate, other.lastShiftDate)
- .isEquals();
- } else {
- return false;
- }
- }
-
- public int hashCode() {
- return new HashCodeBuilder()
- .append(employee)
- .append(firstShiftDate)
- .append(lastShiftDate)
- .toHashCode();
- }
-
- public int compareTo(EmployeeConsecutiveAssignment other) {
- return new CompareToBuilder()
- .append(employee, other.employee)
- .append(firstShiftDate, other.firstShiftDate)
- .append(lastShiftDate, other.lastShiftDate)
- .toComparison();
- }
-
- @Override
- public String toString() {
- return employee + " is working between " + firstShiftDate + " - " + lastShiftDate;
- }
-
- public int getFirstShiftDateDayIndex() {
- return firstShiftDate.getDayIndex();
- }
-
- public int getLastShiftDateDayIndex() {
- return lastShiftDate.getDayIndex();
- }
-
- public int getDayLength() {
- return lastShiftDate.getDayIndex() - firstShiftDate.getDayIndex() + 1;
- }
-
-}
Copied: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/solver/EmployeeWorkSequence.java (from rev 33054, labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/solver/EmployeeConsecutiveAssignment.java)
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/solver/EmployeeWorkSequence.java (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/solver/EmployeeWorkSequence.java 2010-05-26 19:35:54 UTC (rev 33099)
@@ -0,0 +1,90 @@
+package org.drools.planner.examples.nurserostering.domain.solver;
+
+import java.io.Serializable;
+
+import org.apache.commons.lang.builder.CompareToBuilder;
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.drools.planner.examples.nurserostering.domain.Employee;
+import org.drools.planner.examples.nurserostering.domain.ShiftDate;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class EmployeeWorkSequence implements Comparable<EmployeeWorkSequence>, Serializable {
+
+ private Employee employee;
+ private int firstDayIndex;
+ private int lastDayIndex;
+
+ public EmployeeWorkSequence(Employee employee, int firstDayIndex, int lastDayIndex) {
+ this.employee = employee;
+ this.firstDayIndex = firstDayIndex;
+ this.lastDayIndex = lastDayIndex;
+ }
+
+ public Employee getEmployee() {
+ return employee;
+ }
+
+ public void setEmployee(Employee employee) {
+ this.employee = employee;
+ }
+
+ public int getFirstDayIndex() {
+ return firstDayIndex;
+ }
+
+ public void setFirstDayIndex(int firstDayIndex) {
+ this.firstDayIndex = firstDayIndex;
+ }
+
+ public int getLastDayIndex() {
+ return lastDayIndex;
+ }
+
+ public void setLastDayIndex(int lastDayIndex) {
+ this.lastDayIndex = lastDayIndex;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ } else if (o instanceof EmployeeWorkSequence) {
+ EmployeeWorkSequence other = (EmployeeWorkSequence) o;
+ return new EqualsBuilder()
+ .append(employee, other.employee)
+ .append(firstDayIndex, other.firstDayIndex)
+ .append(lastDayIndex, other.lastDayIndex)
+ .isEquals();
+ } else {
+ return false;
+ }
+ }
+
+ public int hashCode() {
+ return new HashCodeBuilder()
+ .append(employee)
+ .append(firstDayIndex)
+ .append(lastDayIndex)
+ .toHashCode();
+ }
+
+ public int compareTo(EmployeeWorkSequence other) {
+ return new CompareToBuilder()
+ .append(employee, other.employee)
+ .append(firstDayIndex, other.firstDayIndex)
+ .append(lastDayIndex, other.lastDayIndex)
+ .toComparison();
+ }
+
+ @Override
+ public String toString() {
+ return employee + " is working between " + firstDayIndex + " - " + lastDayIndex;
+ }
+
+ public int getDayLength() {
+ return lastDayIndex - firstDayIndex + 1;
+ }
+
+}
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-26 19:31:54 UTC (rev 33098)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl 2010-05-26 19:35:54 UTC (rev 33099)
@@ -27,7 +27,7 @@
import org.drools.planner.examples.nurserostering.domain.request.ShiftOffRequest;
import org.drools.planner.examples.nurserostering.domain.request.ShiftOnRequest;
import org.drools.planner.examples.nurserostering.domain.solver.EmployeeAssignmentTotal;
-import org.drools.planner.examples.nurserostering.domain.solver.EmployeeConsecutiveAssignment;
+import org.drools.planner.examples.nurserostering.domain.solver.EmployeeWorkSequence;
import org.drools.planner.examples.nurserostering.domain.solver.EmployeeFreeDaySequence;
import org.drools.planner.examples.nurserostering.domain.solver.EmployeeConsecutiveAssignmentEnd;
import org.drools.planner.examples.nurserostering.domain.solver.EmployeeConsecutiveAssignmentStart;
@@ -142,20 +142,17 @@
insertLogical(new EmployeeConsecutiveAssignmentEnd($employee, $shiftDate));
end
-// TODO rename EmployeeConsecutiveAssignment and use dayIndex ints
-rule "insertEmployeeConsecutiveAssignment"
+rule "insertEmployeeWorkSequence"
salience 1 // Do these rules first (optional, for performance)
when
EmployeeConsecutiveAssignmentStart(
$employee : employee,
- $firstShiftDate : shiftDate,
$firstDayIndex : shiftDateDayIndex
)
EmployeeConsecutiveAssignmentEnd(
employee == $employee,
shiftDateDayIndex >= $firstDayIndex,
- $lastShiftDate : shiftDate,
$lastDayIndex : shiftDateDayIndex
)
@@ -165,7 +162,7 @@
shiftDateDayIndex >= $firstDayIndex && < $lastDayIndex
)
then
- insertLogical(new EmployeeConsecutiveAssignment($employee, $firstShiftDate, $lastShiftDate));
+ insertLogical(new EmployeeWorkSequence($employee, $firstDayIndex, $lastDayIndex));
end
// Minimum number of consecutive working days
@@ -177,7 +174,7 @@
)
$employee : Employee(contract == $contract)
- $employeeConsecutiveAssignment : EmployeeConsecutiveAssignment(
+ $employeeWorkSequence : EmployeeWorkSequence(
employee == $employee,
dayLength < $minimumValue,
$dayLength : dayLength
@@ -185,7 +182,7 @@
then
insertLogical(new IntConstraintOccurrence("minimumConsecutiveWorkingDays", ConstraintType.NEGATIVE_SOFT,
($minimumValue - $dayLength) * $contractLine.getMinimumWeight(),
- $employeeConsecutiveAssignment));
+ $employeeWorkSequence));
end
// Maximum number of consecutive working days
@@ -197,7 +194,7 @@
)
$employee : Employee(contract == $contract)
- $employeeConsecutiveAssignment : EmployeeConsecutiveAssignment(
+ $employeeWorkSequence : EmployeeWorkSequence(
employee == $employee,
dayLength > $maximumValue,
$dayLength : dayLength
@@ -205,7 +202,7 @@
then
insertLogical(new IntConstraintOccurrence("maximumConsecutiveWorkingDays", ConstraintType.NEGATIVE_SOFT,
($dayLength - $maximumValue) * $contractLine.getMaximumWeight(),
- $employeeConsecutiveAssignment));
+ $employeeWorkSequence));
end
More information about the jboss-svn-commits
mailing list