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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun May 23 11:13:06 EDT 2010


Author: ge0ffrey
Date: 2010-05-23 11:13:05 -0400 (Sun, 23 May 2010)
New Revision: 33019

Added:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/Assignment.java
Removed:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/EmployeeAssignment.java
Modified:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/NurseRoster.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringSolutionExporter.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeAssignmentSwitchMove.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeChangeMove.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/NurseRosterMoveHelper.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeAssignmentSwitchMoveFactory.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeChangeMoveFactory.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/solution/initializer/NurseRosteringStartingSolutionInitializer.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/swingui/NurseRosteringPanel.java
   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/test/java/org/drools/planner/examples/nurserostering/solver/NurseRosteringScoreRulesTest.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/test/resources/org/drools/planner/examples/nurserostering/data/testNurseRosteringScoreRules.xml
Log:
rename EmployeeAssignment to Assignment

Copied: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/Assignment.java (from rev 32994, labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/EmployeeAssignment.java)
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/Assignment.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/Assignment.java	2010-05-23 15:13:05 UTC (rev 33019)
@@ -0,0 +1,110 @@
+package org.drools.planner.examples.nurserostering.domain;
+
+import com.thoughtworks.xstream.annotations.XStreamAlias;
+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.common.domain.AbstractPersistable;
+import org.drools.planner.examples.nurserostering.domain.contract.Contract;
+
+/**
+ * @author Geoffrey De Smet
+ */
+ at XStreamAlias("Assignment")
+public class Assignment extends AbstractPersistable implements Comparable<Assignment> {
+
+    private Shift shift;
+
+    // Changed by moves, between score calculations.
+    private Employee employee;
+
+    public Shift getShift() {
+        return shift;
+    }
+
+    public void setShift(Shift shift) {
+        this.shift = shift;
+    }
+
+    public Employee getEmployee() {
+        return employee;
+    }
+
+    public void setEmployee(Employee employee) {
+        this.employee = employee;
+    }
+
+    public String getLabel() {
+        return shift.getShiftType().getCode();
+    }
+
+    public int compareTo(Assignment other) {
+        return new CompareToBuilder()
+                .append(shift, other.shift)
+                .append(employee, other.employee)
+                .toComparison();
+    }
+
+    public Assignment clone() {
+        Assignment clone = new Assignment();
+        clone.id = id;
+        clone.shift = shift;
+        clone.employee = employee;
+        return clone;
+    }
+
+    /**
+     * The normal methods {@link #equals(Object)} and {@link #hashCode()} cannot be used because the rule engine already
+     * requires them (for performance in their original state).
+     * @see #solutionHashCode()
+     */
+    public boolean solutionEquals(Object o) {
+        if (this == o) {
+            return true;
+        } else if (o instanceof Assignment) {
+            Assignment other = (Assignment) o;
+            return new EqualsBuilder()
+                    .append(id, other.id)
+                    .append(shift, other.shift)
+                    .append(employee, other.employee)
+                    .isEquals();
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * The normal methods {@link #equals(Object)} and {@link #hashCode()} cannot be used because the rule engine already
+     * requires them (for performance in their original state).
+     * @see #solutionEquals(Object)
+     */
+    public int solutionHashCode() {
+        return new HashCodeBuilder()
+                .append(id)
+                .append(shift)
+                .append(shift)
+                .toHashCode();
+    }
+
+    @Override
+    public String toString() {
+        return shift + "->" + employee;
+    }
+
+    public ShiftDate getShiftDate() {
+        return shift.getShiftDate();
+    }
+
+    public ShiftType getShiftType() {
+        return shift.getShiftType();
+    }
+
+    public int getShiftDateDayIndex() {
+        return shift.getShiftDate().getDayIndex();
+    }
+
+    public Contract getContract() {
+        return employee.getContract();
+    }
+
+}

Deleted: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/EmployeeAssignment.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/EmployeeAssignment.java	2010-05-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/EmployeeAssignment.java	2010-05-23 15:13:05 UTC (rev 33019)
@@ -1,110 +0,0 @@
-package org.drools.planner.examples.nurserostering.domain;
-
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-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.common.domain.AbstractPersistable;
-import org.drools.planner.examples.nurserostering.domain.contract.Contract;
-
-/**
- * @author Geoffrey De Smet
- */
- at XStreamAlias("EmployeeAssignment")
-public class EmployeeAssignment extends AbstractPersistable implements Comparable<EmployeeAssignment> {
-
-    private Shift shift;
-
-    // Changed by moves, between score calculations.
-    private Employee employee;
-
-    public Shift getShift() {
-        return shift;
-    }
-
-    public void setShift(Shift shift) {
-        this.shift = shift;
-    }
-
-    public Employee getEmployee() {
-        return employee;
-    }
-
-    public void setEmployee(Employee employee) {
-        this.employee = employee;
-    }
-
-    public String getLabel() {
-        return shift.getShiftType().getCode();
-    }
-
-    public int compareTo(EmployeeAssignment other) {
-        return new CompareToBuilder()
-                .append(shift, other.shift)
-                .append(employee, other.employee)
-                .toComparison();
-    }
-
-    public EmployeeAssignment clone() {
-        EmployeeAssignment clone = new EmployeeAssignment();
-        clone.id = id;
-        clone.shift = shift;
-        clone.employee = employee;
-        return clone;
-    }
-
-    /**
-     * The normal methods {@link #equals(Object)} and {@link #hashCode()} cannot be used because the rule engine already
-     * requires them (for performance in their original state).
-     * @see #solutionHashCode()
-     */
-    public boolean solutionEquals(Object o) {
-        if (this == o) {
-            return true;
-        } else if (o instanceof EmployeeAssignment) {
-            EmployeeAssignment other = (EmployeeAssignment) o;
-            return new EqualsBuilder()
-                    .append(id, other.id)
-                    .append(shift, other.shift)
-                    .append(employee, other.employee)
-                    .isEquals();
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * The normal methods {@link #equals(Object)} and {@link #hashCode()} cannot be used because the rule engine already
-     * requires them (for performance in their original state).
-     * @see #solutionEquals(Object)
-     */
-    public int solutionHashCode() {
-        return new HashCodeBuilder()
-                .append(id)
-                .append(shift)
-                .append(shift)
-                .toHashCode();
-    }
-
-    @Override
-    public String toString() {
-        return shift + "->" + employee;
-    }
-
-    public ShiftDate getShiftDate() {
-        return shift.getShiftDate();
-    }
-
-    public ShiftType getShiftType() {
-        return shift.getShiftType();
-    }
-
-    public int getShiftDateDayIndex() {
-        return shift.getShiftDate().getDayIndex();
-    }
-
-    public Contract getContract() {
-        return employee.getContract();
-    }
-
-}

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/NurseRoster.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/NurseRoster.java	2010-05-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/NurseRoster.java	2010-05-23 15:13:05 UTC (rev 33019)
@@ -41,7 +41,7 @@
     private List<ShiftOffRequest> shiftOffRequestList;
     private List<ShiftOnRequest> shiftOnRequestList;
 
-    private List<EmployeeAssignment> employeeAssignmentList;
+    private List<Assignment> assignmentList;
 
     private HardAndSoftScore score;
 
@@ -165,12 +165,12 @@
         this.shiftOnRequestList = shiftOnRequestList;
     }
 
-    public List<EmployeeAssignment> getEmployeeAssignmentList() {
-        return employeeAssignmentList;
+    public List<Assignment> getEmployeeAssignmentList() {
+        return assignmentList;
     }
 
-    public void setEmployeeAssignmentList(List<EmployeeAssignment> employeeAssignmentList) {
-        this.employeeAssignmentList = employeeAssignmentList;
+    public void setEmployeeAssignmentList(List<Assignment> assignmentList) {
+        this.assignmentList = assignmentList;
     }
 
     public HardAndSoftScore getScore() {
@@ -183,7 +183,7 @@
 
 
     public boolean isInitialized() {
-        return (employeeAssignmentList != null);
+        return (assignmentList != null);
     }
 
     public Collection<? extends Object> getFacts() {
@@ -206,13 +206,13 @@
 
 
         if (isInitialized()) {
-            facts.addAll(employeeAssignmentList);
+            facts.addAll(assignmentList);
         }
         return facts;
     }
 
     /**
-     * Clone will only deep copy the {@link #employeeAssignmentList}.
+     * Clone will only deep copy the {@link #assignmentList}.
      */
     public NurseRoster cloneSolution() {
         NurseRoster clone = new NurseRoster();
@@ -232,13 +232,13 @@
         clone.dayOnRequestList = dayOnRequestList;
         clone.shiftOffRequestList = shiftOffRequestList;
         clone.shiftOnRequestList = shiftOnRequestList;
-        List<EmployeeAssignment> clonedEmployeeAssignmentList = new ArrayList<EmployeeAssignment>(
-                employeeAssignmentList.size());
-        for (EmployeeAssignment employeeAssignment : employeeAssignmentList) {
-            EmployeeAssignment clonedEmployeeAssignment = employeeAssignment.clone();
-            clonedEmployeeAssignmentList.add(clonedEmployeeAssignment);
+        List<Assignment> clonedAssignmentList = new ArrayList<Assignment>(
+                assignmentList.size());
+        for (Assignment assignment : assignmentList) {
+            Assignment clonedAssignment = assignment.clone();
+            clonedAssignmentList.add(clonedAssignment);
         }
-        clone.employeeAssignmentList = clonedEmployeeAssignmentList;
+        clone.assignmentList = clonedAssignmentList;
         clone.score = score;
         return clone;
     }
@@ -251,14 +251,14 @@
             return false;
         } else {
             NurseRoster other = (NurseRoster) o;
-            if (employeeAssignmentList.size() != other.employeeAssignmentList.size()) {
+            if (assignmentList.size() != other.assignmentList.size()) {
                 return false;
             }
-            for (Iterator<EmployeeAssignment> it = employeeAssignmentList.iterator(), otherIt = other.employeeAssignmentList.iterator(); it.hasNext();) {
-                EmployeeAssignment employeeAssignment = it.next();
-                EmployeeAssignment otherEmployeeAssignment = otherIt.next();
+            for (Iterator<Assignment> it = assignmentList.iterator(), otherIt = other.assignmentList.iterator(); it.hasNext();) {
+                Assignment assignment = it.next();
+                Assignment otherAssignment = otherIt.next();
                 // Notice: we don't use equals()
-                if (!employeeAssignment.solutionEquals(otherEmployeeAssignment)) {
+                if (!assignment.solutionEquals(otherAssignment)) {
                     return false;
                 }
             }
@@ -268,9 +268,9 @@
 
     public int hashCode() {
         HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
-        for (EmployeeAssignment employeeAssignment : employeeAssignmentList) {
+        for (Assignment assignment : assignmentList) {
             // Notice: we don't use hashCode()
-            hashCodeBuilder.append(employeeAssignment.solutionHashCode());
+            hashCodeBuilder.append(assignment.solutionHashCode());
         }
         return hashCodeBuilder.toHashCode();
     }

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringSolutionExporter.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringSolutionExporter.java	2010-05-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringSolutionExporter.java	2010-05-23 15:13:05 UTC (rev 33019)
@@ -4,7 +4,7 @@
 
 import org.drools.planner.core.solution.Solution;
 import org.drools.planner.examples.common.persistence.AbstractXmlSolutionExporter;
-import org.drools.planner.examples.nurserostering.domain.EmployeeAssignment;
+import org.drools.planner.examples.nurserostering.domain.Assignment;
 import org.drools.planner.examples.nurserostering.domain.NurseRoster;
 import org.drools.planner.examples.nurserostering.domain.Shift;
 import org.jdom.Element;
@@ -50,8 +50,8 @@
             softConstraintsPenaltyElement.setText(Integer.toString(nurseRoster.getScore().getSoftScore()));
             solutionElement.addContent(softConstraintsPenaltyElement);
 
-            for (EmployeeAssignment employeeAssignment : nurseRoster.getEmployeeAssignmentList()) {
-                Shift shift = employeeAssignment.getShift();
+            for (Assignment assignment : nurseRoster.getEmployeeAssignmentList()) {
+                Shift shift = assignment.getShift();
                 if (shift != null) {
                     Element assignmentElement = new Element("Assignment");
                     solutionElement.addContent(assignmentElement);
@@ -61,7 +61,7 @@
                     assignmentElement.addContent(dateElement);
 
                     Element employeeElement = new Element("Employee");
-                    employeeElement.setText(employeeAssignment.getEmployee().getCode());
+                    employeeElement.setText(assignment.getEmployee().getCode());
                     assignmentElement.addContent(employeeElement);
 
                     Element shiftTypeElement = new Element("ShiftType");

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeAssignmentSwitchMove.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeAssignmentSwitchMove.java	2010-05-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeAssignmentSwitchMove.java	2010-05-23 15:13:05 UTC (rev 33019)
@@ -9,40 +9,39 @@
 import org.drools.WorkingMemory;
 import org.drools.planner.core.localsearch.decider.acceptor.tabu.TabuPropertyEnabled;
 import org.drools.planner.core.move.Move;
+import org.drools.planner.examples.nurserostering.domain.Assignment;
 import org.drools.planner.examples.nurserostering.domain.Employee;
-import org.drools.planner.examples.nurserostering.domain.EmployeeAssignment;
-import org.drools.planner.examples.nurserostering.domain.Shift;
 
 /**
  * @author Geoffrey De Smet
  */
 public class EmployeeAssignmentSwitchMove implements Move, TabuPropertyEnabled {
 
-    private EmployeeAssignment leftEmployeeAssignment;
-    private EmployeeAssignment rightEmployeeAssignment;
+    private Assignment leftAssignment;
+    private Assignment rightAssignment;
 
-    public EmployeeAssignmentSwitchMove(EmployeeAssignment leftEmployeeAssignment, EmployeeAssignment rightEmployeeAssignment) {
-        this.leftEmployeeAssignment = leftEmployeeAssignment;
-        this.rightEmployeeAssignment = rightEmployeeAssignment;
+    public EmployeeAssignmentSwitchMove(Assignment leftAssignment, Assignment rightAssignment) {
+        this.leftAssignment = leftAssignment;
+        this.rightAssignment = rightAssignment;
     }
 
     public boolean isMoveDoable(WorkingMemory workingMemory) {
-        return !ObjectUtils.equals(leftEmployeeAssignment.getEmployee(), rightEmployeeAssignment.getEmployee());
+        return !ObjectUtils.equals(leftAssignment.getEmployee(), rightAssignment.getEmployee());
     }
 
     public Move createUndoMove(WorkingMemory workingMemory) {
-        return new EmployeeAssignmentSwitchMove(rightEmployeeAssignment, leftEmployeeAssignment);
+        return new EmployeeAssignmentSwitchMove(rightAssignment, leftAssignment);
     }
 
     public void doMove(WorkingMemory workingMemory) {
-        Employee oldLeftEmployee = leftEmployeeAssignment.getEmployee();
-        Employee oldRightEmployee = rightEmployeeAssignment.getEmployee();
-        NurseRosterMoveHelper.moveEmployee(workingMemory, leftEmployeeAssignment, oldRightEmployee);
-        NurseRosterMoveHelper.moveEmployee(workingMemory, rightEmployeeAssignment, oldLeftEmployee);
+        Employee oldLeftEmployee = leftAssignment.getEmployee();
+        Employee oldRightEmployee = rightAssignment.getEmployee();
+        NurseRosterMoveHelper.moveEmployee(workingMemory, leftAssignment, oldRightEmployee);
+        NurseRosterMoveHelper.moveEmployee(workingMemory, rightAssignment, oldLeftEmployee);
     }
 
     public Collection<? extends Object> getTabuProperties() {
-        return Arrays.<EmployeeAssignment>asList(leftEmployeeAssignment, rightEmployeeAssignment);
+        return Arrays.<Assignment>asList(leftAssignment, rightAssignment);
     }
 
     public boolean equals(Object o) {
@@ -51,8 +50,8 @@
         } else if (o instanceof EmployeeAssignmentSwitchMove) {
             EmployeeAssignmentSwitchMove other = (EmployeeAssignmentSwitchMove) o;
             return new EqualsBuilder()
-                    .append(leftEmployeeAssignment, other.leftEmployeeAssignment)
-                    .append(rightEmployeeAssignment, other.rightEmployeeAssignment)
+                    .append(leftAssignment, other.leftAssignment)
+                    .append(rightAssignment, other.rightAssignment)
                     .isEquals();
         } else {
             return false;
@@ -61,13 +60,13 @@
 
     public int hashCode() {
         return new HashCodeBuilder()
-                .append(leftEmployeeAssignment)
-                .append(rightEmployeeAssignment)
+                .append(leftAssignment)
+                .append(rightAssignment)
                 .toHashCode();
     }
 
     public String toString() {
-        return leftEmployeeAssignment + " <=> " + rightEmployeeAssignment;
+        return leftAssignment + " <=> " + rightAssignment;
     }
 
 }

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeChangeMove.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeChangeMove.java	2010-05-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeChangeMove.java	2010-05-23 15:13:05 UTC (rev 33019)
@@ -10,36 +10,35 @@
 import org.drools.planner.core.localsearch.decider.acceptor.tabu.TabuPropertyEnabled;
 import org.drools.planner.core.move.Move;
 import org.drools.planner.examples.nurserostering.domain.Employee;
-import org.drools.planner.examples.nurserostering.domain.EmployeeAssignment;
-import org.drools.planner.examples.nurserostering.domain.Shift;
+import org.drools.planner.examples.nurserostering.domain.Assignment;
 
 /**
  * @author Geoffrey De Smet
  */
 public class EmployeeChangeMove implements Move, TabuPropertyEnabled {
 
-    private EmployeeAssignment employeeAssignment;
+    private Assignment assignment;
     private Employee toEmployee;
 
-    public EmployeeChangeMove(EmployeeAssignment employeeAssignment, Employee toEmployee) {
-        this.employeeAssignment = employeeAssignment;
+    public EmployeeChangeMove(Assignment assignment, Employee toEmployee) {
+        this.assignment = assignment;
         this.toEmployee = toEmployee;
     }
 
     public boolean isMoveDoable(WorkingMemory workingMemory) {
-        return !ObjectUtils.equals(employeeAssignment.getEmployee(), toEmployee);
+        return !ObjectUtils.equals(assignment.getEmployee(), toEmployee);
     }
 
     public Move createUndoMove(WorkingMemory workingMemory) {
-        return new EmployeeChangeMove(employeeAssignment, employeeAssignment.getEmployee());
+        return new EmployeeChangeMove(assignment, assignment.getEmployee());
     }
 
     public void doMove(WorkingMemory workingMemory) {
-        NurseRosterMoveHelper.moveEmployee(workingMemory, employeeAssignment, toEmployee);
+        NurseRosterMoveHelper.moveEmployee(workingMemory, assignment, toEmployee);
     }
 
     public Collection<? extends Object> getTabuProperties() {
-        return Collections.singletonList(employeeAssignment);
+        return Collections.singletonList(assignment);
     }
 
     public boolean equals(Object o) {
@@ -48,7 +47,7 @@
         } else if (o instanceof EmployeeChangeMove) {
             EmployeeChangeMove other = (EmployeeChangeMove) o;
             return new EqualsBuilder()
-                    .append(employeeAssignment, other.employeeAssignment)
+                    .append(assignment, other.assignment)
                     .append(toEmployee, other.toEmployee)
                     .isEquals();
         } else {
@@ -58,13 +57,13 @@
 
     public int hashCode() {
         return new HashCodeBuilder()
-                .append(employeeAssignment)
+                .append(assignment)
                 .append(toEmployee)
                 .toHashCode();
     }
 
     public String toString() {
-        return employeeAssignment + " => " + toEmployee;
+        return assignment + " => " + toEmployee;
     }
 
 }

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/NurseRosterMoveHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/NurseRosterMoveHelper.java	2010-05-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/NurseRosterMoveHelper.java	2010-05-23 15:13:05 UTC (rev 33019)
@@ -2,9 +2,8 @@
 
 
 import org.drools.WorkingMemory;
+import org.drools.planner.examples.nurserostering.domain.Assignment;
 import org.drools.planner.examples.nurserostering.domain.Employee;
-import org.drools.planner.examples.nurserostering.domain.EmployeeAssignment;
-import org.drools.planner.examples.nurserostering.domain.Shift;
 import org.drools.runtime.rule.FactHandle;
 
 /**
@@ -12,10 +11,10 @@
  */
 public class NurseRosterMoveHelper {
 
-    public static void moveEmployee(WorkingMemory workingMemory, EmployeeAssignment employeeAssignment, Employee toEmployee) {
-        FactHandle factHandle = workingMemory.getFactHandle(employeeAssignment);
-        employeeAssignment.setEmployee(toEmployee);
-        workingMemory.update(factHandle, employeeAssignment);
+    public static void moveEmployee(WorkingMemory workingMemory, Assignment assignment, Employee toEmployee) {
+        FactHandle factHandle = workingMemory.getFactHandle(assignment);
+        assignment.setEmployee(toEmployee);
+        workingMemory.update(factHandle, assignment);
     }
 
     private NurseRosterMoveHelper() {

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeAssignmentSwitchMoveFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeAssignmentSwitchMoveFactory.java	2010-05-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeAssignmentSwitchMoveFactory.java	2010-05-23 15:13:05 UTC (rev 33019)
@@ -7,7 +7,7 @@
 import org.drools.planner.core.move.Move;
 import org.drools.planner.core.move.factory.CachedMoveFactory;
 import org.drools.planner.core.solution.Solution;
-import org.drools.planner.examples.nurserostering.domain.EmployeeAssignment;
+import org.drools.planner.examples.nurserostering.domain.Assignment;
 import org.drools.planner.examples.nurserostering.domain.NurseRoster;
 import org.drools.planner.examples.nurserostering.solver.move.EmployeeAssignmentSwitchMove;
 
@@ -18,13 +18,13 @@
 
     public List<Move> createCachedMoveList(Solution solution) {
         NurseRoster nurseRoster = (NurseRoster) solution;
-        List<EmployeeAssignment> employeeAssignmentList = nurseRoster.getEmployeeAssignmentList();
+        List<Assignment> assignmentList = nurseRoster.getEmployeeAssignmentList();
         List<Move> moveList = new ArrayList<Move>();
-        for (ListIterator<EmployeeAssignment> leftIt = employeeAssignmentList.listIterator(); leftIt.hasNext();) {
-            EmployeeAssignment leftEmployeeAssignment = leftIt.next();
-            for (ListIterator<EmployeeAssignment> rightIt = employeeAssignmentList.listIterator(leftIt.nextIndex()); rightIt.hasNext();) {
-                EmployeeAssignment rightEmployeeAssignment = rightIt.next();
-                moveList.add(new EmployeeAssignmentSwitchMove(leftEmployeeAssignment, rightEmployeeAssignment));
+        for (ListIterator<Assignment> leftIt = assignmentList.listIterator(); leftIt.hasNext();) {
+            Assignment leftAssignment = leftIt.next();
+            for (ListIterator<Assignment> rightIt = assignmentList.listIterator(leftIt.nextIndex()); rightIt.hasNext();) {
+                Assignment rightAssignment = rightIt.next();
+                moveList.add(new EmployeeAssignmentSwitchMove(leftAssignment, rightAssignment));
             }
         }
         return moveList;

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeChangeMoveFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeChangeMoveFactory.java	2010-05-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeChangeMoveFactory.java	2010-05-23 15:13:05 UTC (rev 33019)
@@ -6,11 +6,9 @@
 import org.drools.planner.core.move.Move;
 import org.drools.planner.core.move.factory.CachedMoveFactory;
 import org.drools.planner.core.solution.Solution;
+import org.drools.planner.examples.nurserostering.domain.Assignment;
 import org.drools.planner.examples.nurserostering.domain.Employee;
-import org.drools.planner.examples.nurserostering.domain.EmployeeAssignment;
 import org.drools.planner.examples.nurserostering.domain.NurseRoster;
-import org.drools.planner.examples.nurserostering.domain.Shift;
-import org.drools.planner.examples.nurserostering.domain.ShiftDate;
 import org.drools.planner.examples.nurserostering.solver.move.EmployeeChangeMove;
 
 /**
@@ -22,9 +20,9 @@
         NurseRoster nurseRoster = (NurseRoster) solution;
         List<Move> moveList = new ArrayList<Move>();
         List<Employee> employeeList = nurseRoster.getEmployeeList();
-        for (EmployeeAssignment employeeAssignment : nurseRoster.getEmployeeAssignmentList()) {
+        for (Assignment assignment : nurseRoster.getEmployeeAssignmentList()) {
             for (Employee employee : employeeList) {
-                moveList.add(new EmployeeChangeMove(employeeAssignment, employee));
+                moveList.add(new EmployeeChangeMove(assignment, employee));
             }
         }
         return moveList;

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/solution/initializer/NurseRosteringStartingSolutionInitializer.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/solution/initializer/NurseRosteringStartingSolutionInitializer.java	2010-05-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/solution/initializer/NurseRosteringStartingSolutionInitializer.java	2010-05-23 15:13:05 UTC (rev 33019)
@@ -5,19 +5,14 @@
 import java.util.List;
 import java.util.Random;
 
-import org.apache.commons.lang.builder.CompareToBuilder;
 import org.drools.WorkingMemory;
 import org.drools.planner.core.localsearch.LocalSearchSolverScope;
-import org.drools.planner.core.score.DefaultHardAndSoftScore;
-import org.drools.planner.core.score.Score;
 import org.drools.planner.core.solution.initializer.AbstractStartingSolutionInitializer;
 import org.drools.planner.examples.common.domain.PersistableIdComparator;
+import org.drools.planner.examples.nurserostering.domain.Assignment;
 import org.drools.planner.examples.nurserostering.domain.Employee;
-import org.drools.planner.examples.nurserostering.domain.EmployeeAssignment;
 import org.drools.planner.examples.nurserostering.domain.NurseRoster;
 import org.drools.planner.examples.nurserostering.domain.Shift;
-import org.drools.planner.examples.nurserostering.domain.ShiftDate;
-import org.drools.runtime.rule.FactHandle;
 
 /**
  * @author Geoffrey De Smet
@@ -40,9 +35,9 @@
         List<Shift> shiftList = nurseRoster.getShiftList();
         WorkingMemory workingMemory = localSearchSolverScope.getWorkingMemory();
 
-        List<EmployeeAssignment> employeeAssignmentList = createEmployeeAssignmentList(nurseRoster);
+        List<Assignment> assignmentList = createEmployeeAssignmentList(nurseRoster);
         // TODO implement this class
-//        for (EmployeeAssignment employeeAssignment : employeeAssignmentList) {
+//        for (Assignment employeeAssignment : assignmentList) {
 //            Score unnurseRosterdScore = localSearchSolverScope.calculateScoreFromWorkingMemory();
 //            FactHandle employeeAssignmentHandle = null;
 //
@@ -102,20 +97,20 @@
 //                employeeAssignment.setRoom(bestRoom);
 //                workingMemory.update(employeeAssignmentHandle, employeeAssignment);
 //            }
-//            logger.debug("    EmployeeAssignment ({}) initialized for starting solution.", employeeAssignment);
+//            logger.debug("    Assignment ({}) initialized for starting solution.", employeeAssignment);
 //        }
         
         // TODO tmp begin
-        for (EmployeeAssignment employeeAssignment : employeeAssignmentList) {
-            workingMemory.insert(employeeAssignment);
+        for (Assignment assignment : assignmentList) {
+            workingMemory.insert(assignment);
         }
         // TODO tmp end
 
-        Collections.sort(employeeAssignmentList, new PersistableIdComparator());
-        nurseRoster.setEmployeeAssignmentList(employeeAssignmentList);
+        Collections.sort(assignmentList, new PersistableIdComparator());
+        nurseRoster.setEmployeeAssignmentList(assignmentList);
     }
 
-    public List<EmployeeAssignment> createEmployeeAssignmentList(NurseRoster nurseRoster) {
+    public List<Assignment> createEmployeeAssignmentList(NurseRoster nurseRoster) {
         List<Employee> employeeList = nurseRoster.getEmployeeList();
 
 //        List<EmployeeInitializationWeight> employeeInitializationWeightList
@@ -125,17 +120,17 @@
 //        }
 //        Collections.sort(employeeInitializationWeightList);
 //
-        List<EmployeeAssignment> employeeAssignmentList = new ArrayList<EmployeeAssignment>(employeeList.size() * 5);
+        List<Assignment> assignmentList = new ArrayList<Assignment>(employeeList.size() * 5);
 //        int employeeAssignmentId = 0;
 //        for (EmployeeInitializationWeight employeeInitializationWeight : employeeInitializationWeightList) {
 //            Employee employee = employeeInitializationWeight.getEmployee();
 //            for (int i = 0; i < employee.getEmployeeAssignmentSize(); i++) {
-//                EmployeeAssignment employeeAssignment = new EmployeeAssignment();
+//                Assignment employeeAssignment = new Assignment();
 //                employeeAssignment.setId((long) employeeAssignmentId);
 //                employeeAssignmentId++;
 //                employeeAssignment.setEmployee(employee);
 //                employeeAssignment.setEmployeeAssignmentIndexInEmployee(i);
-//                employeeAssignmentList.add(employeeAssignment);
+//                assignmentList.add(employeeAssignment);
 //            }
 //        }
 
@@ -145,18 +140,18 @@
         Random random = new Random(); // not seeded, tmp!
         for (Shift shift : shiftList) {
             for (int i = 0; i < shift.getRequiredEmployeeSize(); i++) {
-                EmployeeAssignment employeeAssignment = new EmployeeAssignment();
-                employeeAssignment.setId((long) employeeAssignmentId);
+                Assignment assignment = new Assignment();
+                assignment.setId((long) employeeAssignmentId);
                 employeeAssignmentId++;
-                employeeAssignment.setShift(shift);
+                assignment.setShift(shift);
                 int randomInt = random.nextInt(employeeList.size());
-                employeeAssignment.setEmployee(employeeList.get(randomInt));
-                employeeAssignmentList.add(employeeAssignment);
+                assignment.setEmployee(employeeList.get(randomInt));
+                assignmentList.add(assignment);
             }
         }
         // TODO tmp end
 
-        return employeeAssignmentList;
+        return assignmentList;
     }
 
 //    private class EmployeeInitializationWeight implements Comparable<EmployeeInitializationWeight> {

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/swingui/NurseRosteringPanel.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/swingui/NurseRosteringPanel.java	2010-05-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/swingui/NurseRosteringPanel.java	2010-05-23 15:13:05 UTC (rev 33019)
@@ -16,9 +16,9 @@
 import javax.swing.JPanel;
 
 import org.drools.planner.examples.common.swingui.SolutionPanel;
+import org.drools.planner.examples.nurserostering.domain.Assignment;
 import org.drools.planner.examples.nurserostering.domain.DayOfWeek;
 import org.drools.planner.examples.nurserostering.domain.ShiftDate;
-import org.drools.planner.examples.nurserostering.domain.EmployeeAssignment;
 import org.drools.planner.examples.nurserostering.domain.NurseRoster;
 import org.drools.planner.examples.nurserostering.domain.Employee;
 import org.drools.planner.examples.nurserostering.solver.move.EmployeeChangeMove;
@@ -83,10 +83,10 @@
             }
         }
         if (schedule.isInitialized()) {
-            for (EmployeeAssignment employeeAssignment : schedule.getEmployeeAssignmentList()) {
-                Employee employee = employeeAssignment.getEmployee();
-                EmployeeShiftDatePanel employeeShiftDatePanel = employeeShiftDatePanelMap.get(employee).get(employeeAssignment.getShiftDate());
-                employeeShiftDatePanel.addEmployeeAssignment(employeeAssignment);
+            for (Assignment assignment : schedule.getEmployeeAssignmentList()) {
+                Employee employee = assignment.getEmployee();
+                EmployeeShiftDatePanel employeeShiftDatePanel = employeeShiftDatePanelMap.get(employee).get(assignment.getShiftDate());
+                employeeShiftDatePanel.addEmployeeAssignment(assignment);
             }
         }
     }
@@ -100,8 +100,8 @@
                     BorderFactory.createEmptyBorder(2, 2, 2, 2)));
         }
 
-        public void addEmployeeAssignment(EmployeeAssignment employeeAssignment) {
-            JButton button = new JButton(new EmployeeAssignmentAction(employeeAssignment));
+        public void addEmployeeAssignment(Assignment assignment) {
+            JButton button = new JButton(new EmployeeAssignmentAction(assignment));
             add(button);
         }
 
@@ -109,22 +109,22 @@
 
     private class EmployeeAssignmentAction extends AbstractAction {
 
-        private EmployeeAssignment employeeAssignment;
+        private Assignment assignment;
 
-        public EmployeeAssignmentAction(EmployeeAssignment employeeAssignment) {
-            super(employeeAssignment.getLabel());
-            this.employeeAssignment = employeeAssignment;
+        public EmployeeAssignmentAction(Assignment assignment) {
+            super(assignment.getLabel());
+            this.assignment = assignment;
         }
 
         public void actionPerformed(ActionEvent e) {
             List<Employee> employeeList = getNurseRoster().getEmployeeList();
             JComboBox employeeListField = new JComboBox(employeeList.toArray());
-            employeeListField.setSelectedItem(employeeAssignment.getEmployee());
+            employeeListField.setSelectedItem(assignment.getEmployee());
             int result = JOptionPane.showConfirmDialog(NurseRosteringPanel.this.getRootPane(), employeeListField,
                     "Select employee", JOptionPane.OK_CANCEL_OPTION);
             if (result == JOptionPane.OK_OPTION) {
                 Employee toEmployee = (Employee) employeeListField.getSelectedItem();
-                solutionBusiness.doMove(new EmployeeChangeMove(employeeAssignment, toEmployee));
+                solutionBusiness.doMove(new EmployeeChangeMove(assignment, toEmployee));
                 workflowFrame.updateScreen();
             }
         }

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-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl	2010-05-23 15:13:05 UTC (rev 33019)
@@ -7,7 +7,7 @@
 
 import org.drools.planner.examples.nurserostering.domain.DayOfWeek;
 import org.drools.planner.examples.nurserostering.domain.Employee;
-import org.drools.planner.examples.nurserostering.domain.EmployeeAssignment;
+import org.drools.planner.examples.nurserostering.domain.Assignment;
 import org.drools.planner.examples.nurserostering.domain.NurseRoster;
 import org.drools.planner.examples.nurserostering.domain.Pattern;
 import org.drools.planner.examples.nurserostering.domain.Shift;
@@ -43,7 +43,7 @@
         $shift : Shift(requiredEmployeeSize > 0, $requiredEmployeeSize : requiredEmployeeSize)
 
         $totalEmployeeSize : Number(intValue != $requiredEmployeeSize) from accumulate(
-            $assignment : EmployeeAssignment(shift == $shift),
+            $assignment : Assignment(shift == $shift),
             count($assignment)
         )
     then
@@ -55,12 +55,12 @@
 // a nurse can only work one shift per day, i.e. no two shift can be assigned to the same nurse on a day.
 rule "oneShiftPerDay"
     when
-        $leftEmployeeAssignment : EmployeeAssignment($leftId : id, $employee : employee, $shiftDate : shiftDate)
-        $rightEmployeeAssignment : EmployeeAssignment(employee == $employee, shiftDate == $shiftDate, id > $leftId)
+        $leftAssignment : Assignment($leftId : id, $employee : employee, $shiftDate : shiftDate)
+        $rightAssignment : Assignment(employee == $employee, shiftDate == $shiftDate, id > $leftId)
     then
         insertLogical(new IntConstraintOccurrence("oneShiftPerDay", ConstraintType.NEGATIVE_HARD,
                 1,
-                $leftEmployeeAssignment, $rightEmployeeAssignment));
+                $leftAssignment, $rightAssignment));
 end
 
 // ############################################################################
@@ -76,7 +76,7 @@
         )
         $employee : Employee(contract == $contract)
         $totalAssignmentSize : Number(intValue < $minimumValue) from accumulate(
-            $assignment : EmployeeAssignment(employee == $employee),
+            $assignment : Assignment(employee == $employee),
             count($assignment)
         )
     then
@@ -94,7 +94,7 @@
         )
         $employee : Employee(contract == $contract)
         $totalAssignmentSize : Number(intValue > $maximumValue) from accumulate(
-            $assignment : EmployeeAssignment(employee == $employee),
+            $assignment : Assignment(employee == $employee),
             count($assignment)
         )
     then
@@ -106,26 +106,26 @@
 rule "insertEmployeeConsecutiveAssignmentStart"
         salience 2 // Do these rules first (optional, for performance)
     when
-        EmployeeAssignment(
+        Assignment(
             $employee : employee,
             $dayIndex : shiftDateDayIndex,
             $shiftDate : shiftDate
         )
         // The first day has no working day before it
-        not EmployeeAssignment(employee == $employee, shiftDateDayIndex == ($dayIndex - 1))
+        not Assignment(employee == $employee, shiftDateDayIndex == ($dayIndex - 1))
     then
         insertLogical(new EmployeeConsecutiveAssignmentStart($employee, $shiftDate));
 end
 rule "insertEmployeeConsecutiveAssignmentEnd"
         salience 2 // Do these rules first (optional, for performance)
     when
-        EmployeeAssignment(
+        Assignment(
             $employee : employee,
             $dayIndex : shiftDateDayIndex,
             $shiftDate : shiftDate
         )
         // The last day has no working day after it
-        not EmployeeAssignment(employee == $employee, shiftDateDayIndex == ($dayIndex + 1))
+        not Assignment(employee == $employee, shiftDateDayIndex == ($dayIndex + 1))
     then
         insertLogical(new EmployeeConsecutiveAssignmentEnd($employee, $shiftDate));
 end
@@ -205,10 +205,10 @@
 //
 //        // The first day ...
 //        $firstShiftDate : ShiftDate($firstDayIndex : dayIndex)
-//        not EmployeeAssignment(employee == $employee, shiftDate == $firstShiftDate)
+//        not Assignment(employee == $employee, shiftDate == $firstShiftDate)
 //        // ... has no free day before it
 //        (
-//            exists EmployeeAssignment(employee == $employee, shiftDateDayIndex == ($firstDayIndex - 1))
+//            exists Assignment(employee == $employee, shiftDateDayIndex == ($firstDayIndex - 1))
 //            or not ShiftDate(dayIndex == ($firstDayIndex - 1))
 //        )
 //
@@ -217,15 +217,15 @@
 //            dayIndex > $firstDayIndex,
 //            dayIndex < ($firstDayIndex + $minimumIndexDiff), // Too few days
 //            $lastDayIndex : dayIndex)
-//        not EmployeeAssignment(employee == $employee, shiftDate == $lastShiftDate)
+//        not Assignment(employee == $employee, shiftDate == $lastShiftDate)
 //        // ... has no free day after it
 //        (
-//            exists EmployeeAssignment(employee == $employee, shiftDateDayIndex == ($lastDayIndex + 1))
+//            exists Assignment(employee == $employee, shiftDateDayIndex == ($lastDayIndex + 1))
 //            or not ShiftDate(dayIndex == ($lastDayIndex + 1))
 //        )
 //
 //        // There are no working days between the first and last day
-//        not EmployeeAssignment(employee == $employee, shiftDateDayIndex  > $firstDayIndex && < $lastDayIndex)
+//        not Assignment(employee == $employee, shiftDateDayIndex  > $firstDayIndex && < $lastDayIndex)
 //    then
 //        insertLogical(new IntConstraintOccurrence("minimumConsecutiveFreeDays", ConstraintType.NEGATIVE_SOFT,
 //                ($firstDayIndex + $minimumIndexDiff - $lastDayIndex) * $contractLine.getMinimumWeight(),
@@ -251,7 +251,7 @@
 rule "dayOffRequest"
     when
         $dayOffRequest : DayOffRequest($employee : employee, $shiftDate : shiftDate, $weight : weight)
-        $employeeAssignment : EmployeeAssignment(employee == $employee, shiftDate == $shiftDate)
+        $employeeAssignment : Assignment(employee == $employee, shiftDate == $shiftDate)
     then
         insertLogical(new IntConstraintOccurrence("dayOffRequest", ConstraintType.NEGATIVE_SOFT,
                 $weight,
@@ -260,7 +260,7 @@
 rule "dayOnRequest"
     when
         $dayOnRequest : DayOnRequest($employee : employee, $shiftDate : shiftDate, $weight : weight)
-        not EmployeeAssignment(employee == $employee, shiftDate == $shiftDate)
+        not Assignment(employee == $employee, shiftDate == $shiftDate)
     then
         insertLogical(new IntConstraintOccurrence("dayOnRequest", ConstraintType.NEGATIVE_SOFT,
                 $weight,
@@ -271,7 +271,7 @@
 rule "shiftOffRequest"
     when
         $shiftOffRequest : ShiftOffRequest($employee : employee, $shift : shift, $weight : weight)
-        $employeeAssignment : EmployeeAssignment(employee == $employee, shift == $shift)
+        $employeeAssignment : Assignment(employee == $employee, shift == $shift)
     then
         insertLogical(new IntConstraintOccurrence("shiftOffRequest", ConstraintType.NEGATIVE_SOFT,
                 $weight,
@@ -280,7 +280,7 @@
 rule "shiftOnRequest"
     when
         $shiftOnRequest : ShiftOnRequest($employee : employee, $shift : shift, $weight : weight)
-        not EmployeeAssignment(employee == $employee, shift == $shift)
+        not Assignment(employee == $employee, shift == $shift)
     then
         insertLogical(new IntConstraintOccurrence("shiftOnRequest", ConstraintType.NEGATIVE_SOFT,
                 $weight,
@@ -291,7 +291,7 @@
 rule "alternativeSkill"
     when
         BooleanContractLine(contractLineType == ContractLineType.ALTERNATIVE_SKILL_CATEGORY, $contract : contract)
-        $employeeAssignment : EmployeeAssignment(contract == $contract, $employee : employee, $shiftType : shiftType)
+        $employeeAssignment : Assignment(contract == $contract, $employee : employee, $shiftType : shiftType)
         ShiftTypeSkillRequirement(shiftType == $shiftType, $skill : skill)
         not SkillProficiency(employee == $employee, skill == $skill)
     then

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/test/java/org/drools/planner/examples/nurserostering/solver/NurseRosteringScoreRulesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/test/java/org/drools/planner/examples/nurserostering/solver/NurseRosteringScoreRulesTest.java	2010-05-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/test/java/org/drools/planner/examples/nurserostering/solver/NurseRosteringScoreRulesTest.java	2010-05-23 15:13:05 UTC (rev 33019)
@@ -12,17 +12,11 @@
 import org.drools.WorkingMemory;
 import org.drools.compiler.DroolsParserException;
 import org.drools.compiler.PackageBuilder;
-import org.drools.planner.config.XmlSolverConfigurer;
-import org.drools.planner.core.Solver;
 import org.drools.planner.core.localsearch.LocalSearchSolverScope;
-import org.drools.planner.core.score.DefaultSimpleScore;
 import org.drools.planner.core.score.Score;
 import org.drools.planner.core.score.calculator.DefaultHardAndSoftConstraintScoreCalculator;
-import org.drools.planner.core.solution.Solution;
-import org.drools.planner.examples.common.persistence.SolutionDao;
-import org.drools.planner.examples.nqueens.persistence.NQueensDaoImpl;
+import org.drools.planner.examples.nurserostering.domain.Assignment;
 import org.drools.planner.examples.nurserostering.domain.Employee;
-import org.drools.planner.examples.nurserostering.domain.EmployeeAssignment;
 import org.drools.planner.examples.nurserostering.domain.NurseRoster;
 import org.drools.planner.examples.nurserostering.persistence.NurseRosteringDaoImpl;
 import org.drools.planner.examples.nurserostering.solver.move.NurseRosterMoveHelper;
@@ -45,17 +39,17 @@
         Score firstScore = localSearchSolverScope.calculateScoreFromWorkingMemory();
         // do EmployeeAssignmentSwitchMove
         Employee leftEmployee = findEmployeeById(nurseRoster, 0L);
-        EmployeeAssignment leftEmployeeAssignment = findEmployeeAssignmentById(nurseRoster, 200204001L);
-        assertEquals(leftEmployee, leftEmployeeAssignment.getEmployee());
+        Assignment leftAssignment = findEmployeeAssignmentById(nurseRoster, 200204001L);
+        assertEquals(leftEmployee, leftAssignment.getEmployee());
         Employee rightEmployee = findEmployeeById(nurseRoster, 12L);
-        EmployeeAssignment rightEmployeeAssignment = findEmployeeAssignmentById(nurseRoster, 200204002L);
-        assertEquals(rightEmployee, rightEmployeeAssignment.getEmployee());
-        NurseRosterMoveHelper.moveEmployee(workingMemory, leftEmployeeAssignment, rightEmployee);
-        NurseRosterMoveHelper.moveEmployee(workingMemory, rightEmployeeAssignment, leftEmployee);
+        Assignment rightAssignment = findEmployeeAssignmentById(nurseRoster, 200204002L);
+        assertEquals(rightEmployee, rightAssignment.getEmployee());
+        NurseRosterMoveHelper.moveEmployee(workingMemory, leftAssignment, rightEmployee);
+        NurseRosterMoveHelper.moveEmployee(workingMemory, rightAssignment, leftEmployee);
         localSearchSolverScope.calculateScoreFromWorkingMemory();
         // undo EmployeeAssignmentSwitchMove;
-        NurseRosterMoveHelper.moveEmployee(workingMemory, rightEmployeeAssignment, rightEmployee);
-        NurseRosterMoveHelper.moveEmployee(workingMemory, leftEmployeeAssignment, leftEmployee);
+        NurseRosterMoveHelper.moveEmployee(workingMemory, rightAssignment, rightEmployee);
+        NurseRosterMoveHelper.moveEmployee(workingMemory, leftAssignment, leftEmployee);
         Score secondScore = localSearchSolverScope.calculateScoreFromWorkingMemory();
         assertEquals(firstScore, secondScore);
     }
@@ -91,10 +85,10 @@
         throw new IllegalArgumentException("Invalid id (" + id + ")");
     }
 
-    private EmployeeAssignment findEmployeeAssignmentById(NurseRoster nurseRoster, long id) {
-        for (EmployeeAssignment employeeAssignment : nurseRoster.getEmployeeAssignmentList()) {
-            if (employeeAssignment.getId() == id) {
-                return employeeAssignment;
+    private Assignment findEmployeeAssignmentById(NurseRoster nurseRoster, long id) {
+        for (Assignment assignment : nurseRoster.getEmployeeAssignmentList()) {
+            if (assignment.getId() == id) {
+                return assignment;
             }
         }
         throw new IllegalArgumentException("Invalid id (" + id + ")");

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/test/resources/org/drools/planner/examples/nurserostering/data/testNurseRosteringScoreRules.xml
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/test/resources/org/drools/planner/examples/nurserostering/data/testNurseRosteringScoreRules.xml	2010-05-23 14:31:38 UTC (rev 33018)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/test/resources/org/drools/planner/examples/nurserostering/data/testNurseRosteringScoreRules.xml	2010-05-23 15:13:05 UTC (rev 33019)
@@ -787,103 +787,103 @@
   <dayOnRequestList class="java.util.Collections$EmptyList" id="125"/>
   <shiftOffRequestList id="126"/>
   <shiftOnRequestList class="java.util.Collections$EmptyList" reference="125"/>
-  <employeeAssignmentList id="127">
-    <EmployeeAssignment id="128">
+  <assignmentList id="127">
+    <Assignment id="128">
       <id>0</id>
       <shift reference="55"/>
       <employee reference="1010"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="129">
+    </Assignment>
+    <Assignment id="129">
       <id>1</id>
       <shift reference="58"/>
       <employee reference="1011"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="200201001">
+    </Assignment>
+    <Assignment id="200201001">
       <id>200201001</id>
       <shift reference="200201"/>
       <employee reference="1020"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="200204001">
+    </Assignment>
+    <Assignment id="200204001">
       <id>200204001</id>
       <shift reference="200204"/>
       <employee reference="1000"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="200204002">
+    </Assignment>
+    <Assignment id="200204002">
       <id>200204002</id>
       <shift reference="200204"/>
       <employee reference="1012"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="133">
+    </Assignment>
+    <Assignment id="133">
       <id>5</id>
       <shift reference="69"/>
       <employee reference="1000"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="134">
+    </Assignment>
+    <Assignment id="134">
       <id>6</id>
       <shift reference="76"/>
       <employee reference="1000"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="135">
+    </Assignment>
+    <Assignment id="135">
       <id>7</id>
       <shift reference="83"/>
       <employee reference="1011"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="136">
+    </Assignment>
+    <Assignment id="136">
       <id>8</id>
       <shift reference="83"/>
       <employee reference="1020"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="137">
+    </Assignment>
+    <Assignment id="137">
       <id>9</id>
       <shift reference="83"/>
       <employee reference="1000"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="138">
+    </Assignment>
+    <Assignment id="138">
       <id>10</id>
       <shift reference="90"/>
       <employee reference="1012"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="139">
+    </Assignment>
+    <Assignment id="139">
       <id>11</id>
       <shift reference="97"/>
       <employee reference="1010"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="140">
+    </Assignment>
+    <Assignment id="140">
       <id>12</id>
       <shift reference="101"/>
       <employee reference="1012"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="141">
+    </Assignment>
+    <Assignment id="141">
       <id>13</id>
       <shift reference="104"/>
       <employee reference="1010"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="142">
+    </Assignment>
+    <Assignment id="142">
       <id>14</id>
       <shift reference="107"/>
       <employee reference="1012"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="143">
+    </Assignment>
+    <Assignment id="143">
       <id>15</id>
       <shift reference="111"/>
       <employee reference="1010"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="144">
+    </Assignment>
+    <Assignment id="144">
       <id>16</id>
       <shift reference="114"/>
       <employee reference="1000"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="145">
+    </Assignment>
+    <Assignment id="145">
       <id>17</id>
       <shift reference="114"/>
       <employee reference="1020"/>
-    </EmployeeAssignment>
-    <EmployeeAssignment id="146">
+    </Assignment>
+    <Assignment id="146">
       <id>18</id>
       <shift reference="118"/>
       <employee reference="1011"/>
-    </EmployeeAssignment>
-  </employeeAssignmentList>
+    </Assignment>
+  </assignmentList>
   <score class="org.drools.planner.core.score.DefaultHardAndSoftScore" id="147">
     <hardScore>0</hardScore>
     <softScore>0</softScore>



More information about the jboss-svn-commits mailing list