[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