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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Apr 3 04:57:01 EDT 2010


Author: ge0ffrey
Date: 2010-04-03 04:57:01 -0400 (Sat, 03 Apr 2010)
New Revision: 32374

Modified:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/Shift.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringSolutionImporter.java
Log:
nurse rostering: shiftType index and shift index

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/Shift.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/Shift.java	2010-04-02 21:42:40 UTC (rev 32373)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/Shift.java	2010-04-03 08:57:01 UTC (rev 32374)
@@ -12,7 +12,8 @@
 
     private ShiftDate shiftDate;
     private ShiftType shiftType;
-
+    private int index;
+    
     private int requiredEmployeeSize;
 
     public ShiftDate getShiftDate() {
@@ -31,6 +32,14 @@
         this.shiftType = shiftType;
     }
 
+    public int getIndex() {
+        return index;
+    }
+
+    public void setIndex(int index) {
+        this.index = index;
+    }
+
     public int getRequiredEmployeeSize() {
         return requiredEmployeeSize;
     }

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType.java	2010-04-02 21:42:40 UTC (rev 32373)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftType.java	2010-04-03 08:57:01 UTC (rev 32374)
@@ -13,6 +13,7 @@
 public class ShiftType extends AbstractPersistable implements Comparable<ShiftType> {
 
     private String code;
+    private int index;
     private String startTimeString;
     private String endTimeString;
     private String description;
@@ -25,6 +26,14 @@
         this.code = code;
     }
 
+    public int getIndex() {
+        return index;
+    }
+
+    public void setIndex(int index) {
+        this.index = index;
+    }
+
     public String getStartTimeString() {
         return startTimeString;
     }

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-04-02 21:42:40 UTC (rev 32373)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringSolutionImporter.java	2010-04-03 08:57:01 UTC (rev 32374)
@@ -76,6 +76,7 @@
                     schedulingPeriodElement.getChild("EndDate"));
             readSkillList(nurseRoster, schedulingPeriodElement.getChild("Skills"));
             readShiftTypeList(nurseRoster, schedulingPeriodElement.getChild("ShiftTypes"));
+            generateShiftList(nurseRoster);
             readPatternList(nurseRoster, schedulingPeriodElement.getChild("Patterns"));
             readContractList(nurseRoster, schedulingPeriodElement.getChild("Contracts"));
             readEmployeeList(nurseRoster, schedulingPeriodElement.getChild("Employees"));
@@ -188,23 +189,20 @@
         }
 
         private void readShiftTypeList(NurseRoster nurseRoster, Element shiftTypesElement) throws JDOMException {
-            List<Element> shiftElementList = (List<Element>) shiftTypesElement.getChildren();
-            List<ShiftType> shiftTypeList = new ArrayList<ShiftType>(shiftElementList.size());
-            shiftTypeMap = new HashMap<String, ShiftType>(shiftElementList.size());
+            List<Element> shiftTypeElementList = (List<Element>) shiftTypesElement.getChildren();
+            List<ShiftType> shiftTypeList = new ArrayList<ShiftType>(shiftTypeElementList.size());
+            shiftTypeMap = new HashMap<String, ShiftType>(shiftTypeElementList.size());
             long id = 0L;
+            int index = 0;
             List<ShiftTypeSkillRequirement> shiftTypeSkillRequirementList
-                    = new ArrayList<ShiftTypeSkillRequirement>(shiftElementList.size() * 2);
+                    = new ArrayList<ShiftTypeSkillRequirement>(shiftTypeElementList.size() * 2);
             long shiftTypeSkillRequirementId = 0L;
-            int shiftListSize = shiftDateMap.size() * shiftElementList.size();
-            List<Shift> shiftList = new ArrayList<Shift>(shiftListSize);
-            dateAndShiftTypeToShiftMap = new HashMap<List<String>, Shift>(shiftListSize);
-            dayOfWeekAndShiftTypeToShiftListMap = new HashMap<List<Object>, List<Shift>>(7 * shiftElementList.size());
-            long shiftId = 0L;
-            for (Element element : shiftElementList) {
+            for (Element element : shiftTypeElementList) {
                 assertElementName(element, "Shift");
                 ShiftType shiftType = new ShiftType();
                 shiftType.setId(id);
                 shiftType.setCode(element.getAttribute("ID").getValue());
+                shiftType.setIndex(index);
                 shiftType.setStartTimeString(element.getChild("StartTime").getText());
                 shiftType.setEndTimeString(element.getChild("EndTime").getText());
                 shiftType.setDescription(element.getChild("Description").getText());
@@ -228,26 +226,39 @@
                     }
                 }
 
-                for (Map.Entry<String, ShiftDate> shiftDateEntry : shiftDateMap.entrySet()) {
+                shiftTypeList.add(shiftType);
+                shiftTypeMap.put(shiftType.getCode(), shiftType);
+                id++;
+                index++;
+            }
+            nurseRoster.setShiftTypeList(shiftTypeList);
+            nurseRoster.setShiftTypeSkillRequirementList(shiftTypeSkillRequirementList);
+        }
+
+        private void generateShiftList(NurseRoster nurseRoster) throws JDOMException {
+            List<ShiftType> shiftTypeList = nurseRoster.getShiftTypeList();
+            int shiftListSize = shiftDateMap.size() * shiftTypeList.size();
+            List<Shift> shiftList = new ArrayList<Shift>(shiftListSize);
+            dateAndShiftTypeToShiftMap = new HashMap<List<String>, Shift>(shiftListSize);
+            dayOfWeekAndShiftTypeToShiftListMap = new HashMap<List<Object>, List<Shift>>(7 * shiftTypeList.size());
+            long id = 0L;
+            int index = 0;
+            for (ShiftDate shiftDate : nurseRoster.getShiftDateList()) {
+                for (ShiftType shiftType : shiftTypeList) {
                     Shift shift = new Shift();
-                    shift.setId(shiftId);
-                    ShiftDate shiftDate = shiftDateEntry.getValue();
+                    shift.setId(id);
                     shift.setShiftDate(shiftDate);
                     shiftDate.getShiftList().add(shift);
                     shift.setShiftType(shiftType);
+                    shift.setIndex(index);
                     shift.setRequiredEmployeeSize(0); // Filled in later
                     shiftList.add(shift);
-                    dateAndShiftTypeToShiftMap.put(Arrays.asList(shiftDateEntry.getKey(), shiftType.getCode()), shift);
+                    dateAndShiftTypeToShiftMap.put(Arrays.asList(shiftDate.getDateString(), shiftType.getCode()), shift);
                     addShiftToDayOfWeekAndShiftTypeToShiftListMap(shiftDate, shiftType, shift);
-                    shiftId++;
+                    id++;
+                    index++;
                 }
-
-                shiftTypeList.add(shiftType);
-                shiftTypeMap.put(shiftType.getCode(), shiftType);
-                id++;
             }
-            nurseRoster.setShiftTypeList(shiftTypeList);
-            nurseRoster.setShiftTypeSkillRequirementList(shiftTypeSkillRequirementList);
             nurseRoster.setShiftList(shiftList);
         }
 



More information about the jboss-svn-commits mailing list