[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