[jboss-svn-commits] JBL Code SVN: r32259 - labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Mar 27 12:32:33 EDT 2010
Author: ge0ffrey
Date: 2010-03-27 12:32:33 -0400 (Sat, 27 Mar 2010)
New Revision: 32259
Modified:
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringInputConverter.java
Log:
nurse rostering input converter: shift on and off
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringInputConverter.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringInputConverter.java 2010-03-27 16:19:36 UTC (rev 32258)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringInputConverter.java 2010-03-27 16:32:33 UTC (rev 32259)
@@ -23,6 +23,8 @@
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.domain.ShiftOffRequest;
+import org.drools.planner.examples.nurserostering.domain.ShiftOnRequest;
import org.drools.planner.examples.nurserostering.domain.ShiftPattern;
import org.drools.planner.examples.nurserostering.domain.ShiftType;
import org.drools.planner.examples.nurserostering.domain.ShiftTypeSkillRequirement;
@@ -78,8 +80,8 @@
// readTodoList(nurseRoster, schedulingPeriodElement.getChild("CoverRequirements"));
readDayOffRequestList(nurseRoster, schedulingPeriodElement.getChild("DayOffRequests"));
readDayOnRequestList(nurseRoster, schedulingPeriodElement.getChild("DayOnRequests"));
-// readShiftOffRequestList(nurseRoster, schedulingPeriodElement.getChild("ShiftOffRequests"));
-// readShiftOnRequestList(nurseRoster, schedulingPeriodElement.getChild("ShiftOnRequests"));
+ readShiftOffRequestList(nurseRoster, schedulingPeriodElement.getChild("ShiftOffRequests"));
+ readShiftOnRequestList(nurseRoster, schedulingPeriodElement.getChild("ShiftOnRequests"));
logger.info("NurseRoster {} with TODO.",
new Object[]{nurseRoster.getCode()});
@@ -464,6 +466,82 @@
nurseRoster.setDayOnRequestList(dayOnRequestList);
}
+ private void readShiftOffRequestList(NurseRoster nurseRoster, Element shiftOffRequestsElement) throws JDOMException {
+ if (shiftOffRequestsElement == null) {
+ return;
+ }
+ List<Element> shiftOffElementList = (List<Element>) shiftOffRequestsElement.getChildren();
+ List<ShiftOffRequest> shiftOffRequestList = new ArrayList<ShiftOffRequest>(shiftOffElementList.size());
+ long id = 0L;
+ for (Element element : shiftOffElementList) {
+ assertElementName(element, "ShiftOff");
+ ShiftOffRequest shiftOffRequest = new ShiftOffRequest();
+ shiftOffRequest.setId(id);
+
+ Element employeeElement = element.getChild("EmployeeID");
+ Employee employee = employeeMap.get(employeeElement.getText());
+ if (employee == null) {
+ throw new IllegalArgumentException("The shift (" + employeeElement.getText()
+ + ") of shiftOffRequest (" + shiftOffRequest + ") does not exist.");
+ }
+ shiftOffRequest.setEmployee(employee);
+
+ Element dateElement = element.getChild("Date");
+ Element shiftTypeElement = element.getChild("ShiftTypeID");
+ Shift shift = shiftMap.get(Arrays.asList(dateElement.getText(), shiftTypeElement.getText()));
+ if (shift == null) {
+ throw new IllegalArgumentException("The date (" + dateElement.getText()
+ + ") or the shiftType (" + shiftTypeElement.getText()
+ + ") of shiftOffRequest (" + shiftOffRequest + ") does not exist.");
+ }
+ shiftOffRequest.setShift(shift);
+
+ shiftOffRequest.setWeight(element.getAttribute("weight").getIntValue());
+
+ shiftOffRequestList.add(shiftOffRequest);
+ id++;
+ }
+ nurseRoster.setShiftOffRequestList(shiftOffRequestList);
+ }
+
+ private void readShiftOnRequestList(NurseRoster nurseRoster, Element shiftOnRequestsElement) throws JDOMException {
+ if (shiftOnRequestsElement == null) {
+ return;
+ }
+ List<Element> shiftOnElementList = (List<Element>) shiftOnRequestsElement.getChildren();
+ List<ShiftOnRequest> shiftOnRequestList = new ArrayList<ShiftOnRequest>(shiftOnElementList.size());
+ long id = 0L;
+ for (Element element : shiftOnElementList) {
+ assertElementName(element, "ShiftOn");
+ ShiftOnRequest shiftOnRequest = new ShiftOnRequest();
+ shiftOnRequest.setId(id);
+
+ Element employeeElement = element.getChild("EmployeeID");
+ Employee employee = employeeMap.get(employeeElement.getText());
+ if (employee == null) {
+ throw new IllegalArgumentException("The shift (" + employeeElement.getText()
+ + ") of shiftOnRequest (" + shiftOnRequest + ") does not exist.");
+ }
+ shiftOnRequest.setEmployee(employee);
+
+ Element dateElement = element.getChild("Date");
+ Element shiftTypeElement = element.getChild("ShiftTypeID");
+ Shift shift = shiftMap.get(Arrays.asList(dateElement.getText(), shiftTypeElement.getText()));
+ if (shift == null) {
+ throw new IllegalArgumentException("The date (" + dateElement.getText()
+ + ") or the shiftType (" + shiftTypeElement.getText()
+ + ") of shiftOnRequest (" + shiftOnRequest + ") does not exist.");
+ }
+ shiftOnRequest.setShift(shift);
+
+ shiftOnRequest.setWeight(element.getAttribute("weight").getIntValue());
+
+ shiftOnRequestList.add(shiftOnRequest);
+ id++;
+ }
+ nurseRoster.setShiftOnRequestList(shiftOnRequestList);
+ }
+
}
}
More information about the jboss-svn-commits
mailing list