[jboss-svn-commits] JBL Code SVN: r32257 - 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 Mar 27 12:05:53 EDT 2010
Author: ge0ffrey
Date: 2010-03-27 12:05:53 -0400 (Sat, 27 Mar 2010)
New Revision: 32257
Modified:
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/DayOffRequest.java
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/DayOnRequest.java
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftOffRequest.java
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftOnRequest.java
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringInputConverter.java
Log:
nurse rostering: day off and day on requests
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/DayOffRequest.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/DayOffRequest.java 2010-03-27 15:34:18 UTC (rev 32256)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/DayOffRequest.java 2010-03-27 16:05:53 UTC (rev 32257)
@@ -12,6 +12,7 @@
private Employee employee;
private ShiftDate shiftDate;
+ private int weight;
public Employee getEmployee() {
return employee;
@@ -29,6 +30,14 @@
this.shiftDate = shiftDate;
}
+ public int getWeight() {
+ return weight;
+ }
+
+ public void setWeight(int weight) {
+ this.weight = weight;
+ }
+
public int compareTo(DayOffRequest other) {
return new CompareToBuilder()
.append(employee, other.employee)
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/DayOnRequest.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/DayOnRequest.java 2010-03-27 15:34:18 UTC (rev 32256)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/DayOnRequest.java 2010-03-27 16:05:53 UTC (rev 32257)
@@ -12,6 +12,7 @@
private Employee employee;
private ShiftDate shiftDate;
+ private int weight;
public Employee getEmployee() {
return employee;
@@ -29,6 +30,14 @@
this.shiftDate = shiftDate;
}
+ public int getWeight() {
+ return weight;
+ }
+
+ public void setWeight(int weight) {
+ this.weight = weight;
+ }
+
public int compareTo(DayOnRequest other) {
return new CompareToBuilder()
.append(employee, other.employee)
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftOffRequest.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftOffRequest.java 2010-03-27 15:34:18 UTC (rev 32256)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftOffRequest.java 2010-03-27 16:05:53 UTC (rev 32257)
@@ -12,6 +12,7 @@
private Employee employee;
private Shift shift;
+ private int weight;
public Employee getEmployee() {
return employee;
@@ -29,6 +30,14 @@
this.shift = shift;
}
+ public int getWeight() {
+ return weight;
+ }
+
+ public void setWeight(int weight) {
+ this.weight = weight;
+ }
+
public int compareTo(ShiftOffRequest other) {
return new CompareToBuilder()
.append(employee, other.employee)
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftOnRequest.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftOnRequest.java 2010-03-27 15:34:18 UTC (rev 32256)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/ShiftOnRequest.java 2010-03-27 16:05:53 UTC (rev 32257)
@@ -12,6 +12,7 @@
private Employee employee;
private Shift shift;
+ private int weight;
public Employee getEmployee() {
return employee;
@@ -29,6 +30,14 @@
this.shift = shift;
}
+ public int getWeight() {
+ return weight;
+ }
+
+ public void setWeight(int weight) {
+ this.weight = weight;
+ }
+
public int compareTo(ShiftOnRequest other) {
return new CompareToBuilder()
.append(employee, other.employee)
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 15:34:18 UTC (rev 32256)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/persistence/NurseRosteringInputConverter.java 2010-03-27 16:05:53 UTC (rev 32257)
@@ -16,6 +16,8 @@
import org.drools.planner.examples.common.persistence.AbstractXmlInputConverter;
import org.drools.planner.examples.nurserostering.domain.Contract;
import org.drools.planner.examples.nurserostering.domain.DayOfWeek;
+import org.drools.planner.examples.nurserostering.domain.DayOffRequest;
+import org.drools.planner.examples.nurserostering.domain.DayOnRequest;
import org.drools.planner.examples.nurserostering.domain.Employee;
import org.drools.planner.examples.nurserostering.domain.NurseRoster;
import org.drools.planner.examples.nurserostering.domain.ShiftDate;
@@ -70,6 +72,11 @@
readShiftPatternList(nurseRoster, schedulingPeriodElement.getChild("Patterns"));
readContractList(nurseRoster, schedulingPeriodElement.getChild("Contracts"));
readEmployeeList(nurseRoster, schedulingPeriodElement.getChild("Employees"));
+// 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"));
logger.info("NurseRoster {} with TODO.",
new Object[]{nurseRoster.getCode()});
@@ -141,6 +148,9 @@
}
private void readSkillList(NurseRoster nurseRoster, Element skillsElement) throws JDOMException {
+ if (skillsElement == null) {
+ return;
+ }
List<Element> skillElementList = (List<Element>) skillsElement.getChildren();
List<Skill> skillList = new ArrayList<Skill>(skillElementList.size());
skillMap = new HashMap<String, Skill>(skillElementList.size());
@@ -174,20 +184,23 @@
shiftType.setEndTimeString(element.getChild("EndTime").getText());
shiftType.setDescription(element.getChild("Description").getText());
- List<Element> skillElementList = (List<Element>) element.getChild("Skills").getChildren();
- for (Element skillElement : skillElementList) {
- assertElementName(skillElement, "Skill");
- ShiftTypeSkillRequirement shiftTypeSkillRequirement = new ShiftTypeSkillRequirement();
- shiftTypeSkillRequirement.setId(shiftTypeSkillRequirementId);
- shiftTypeSkillRequirement.setShiftType(shiftType);
- Skill skill = skillMap.get(skillElement.getText());
- if (skill == null) {
- throw new IllegalArgumentException("The skill (" + skillElement.getText()
- + ") of shiftType (" + shiftType.getCode() + ") does not exist.");
+ Element skillsElement = element.getChild("Skills");
+ if (skillsElement != null) {
+ List<Element> skillElementList = (List<Element>) skillsElement.getChildren();
+ for (Element skillElement : skillElementList) {
+ assertElementName(skillElement, "Skill");
+ ShiftTypeSkillRequirement shiftTypeSkillRequirement = new ShiftTypeSkillRequirement();
+ shiftTypeSkillRequirement.setId(shiftTypeSkillRequirementId);
+ shiftTypeSkillRequirement.setShiftType(shiftType);
+ Skill skill = skillMap.get(skillElement.getText());
+ if (skill == null) {
+ throw new IllegalArgumentException("The skill (" + skillElement.getText()
+ + ") of shiftType (" + shiftType.getCode() + ") does not exist.");
+ }
+ shiftTypeSkillRequirement.setSkill(skill);
+ shiftTypeSkillRequirementList.add(shiftTypeSkillRequirement);
+ shiftTypeSkillRequirementId++;
}
- shiftTypeSkillRequirement.setSkill(skill);
- shiftTypeSkillRequirementList.add(shiftTypeSkillRequirement);
- shiftTypeSkillRequirementId++;
}
shiftTypeList.add(shiftType);
@@ -199,6 +212,9 @@
}
private void readShiftPatternList(NurseRoster nurseRoster, Element patternsElement) throws JDOMException {
+ if (patternsElement == null) {
+ return;
+ }
List<Element> patternElementList = (List<Element>) patternsElement.getChildren();
List<ShiftPattern> shiftPatternList = new ArrayList<ShiftPattern>(patternElementList.size());
shiftPatternMap = new HashMap<String, ShiftPattern>(patternElementList.size());
@@ -331,21 +347,23 @@
}
employee.setContract(contract);
- List<Element> skillElementList = (List<Element>) element.getChild("Skills")
- .getChildren();
- for (Element skillElement : skillElementList) {
- assertElementName(skillElement, "Skill");
- Skill skill = skillMap.get(skillElement.getText());
- if (skill == null) {
- throw new IllegalArgumentException("The skill (" + skillElement.getText()
- + ") of employee (" + employee.getCode() + ") does not exist.");
+ Element skillsElement = element.getChild("Skills");
+ if (skillsElement != null) {
+ List<Element> skillElementList = (List<Element>) skillsElement.getChildren();
+ for (Element skillElement : skillElementList) {
+ assertElementName(skillElement, "Skill");
+ Skill skill = skillMap.get(skillElement.getText());
+ if (skill == null) {
+ throw new IllegalArgumentException("The skill (" + skillElement.getText()
+ + ") of employee (" + employee.getCode() + ") does not exist.");
+ }
+ SkillProficiency skillProficiency = new SkillProficiency();
+ skillProficiency.setId(skillProficiencyId);
+ skillProficiency.setEmployee(employee);
+ skillProficiency.setSkill(skill);
+ skillProficiencyList.add(skillProficiency);
+ skillProficiencyId++;
}
- SkillProficiency skillProficiency = new SkillProficiency();
- skillProficiency.setId(skillProficiencyId);
- skillProficiency.setEmployee(employee);
- skillProficiency.setSkill(skill);
- skillProficiencyList.add(skillProficiency);
- skillProficiencyId++;
}
employeeList.add(employee);
@@ -356,6 +374,78 @@
nurseRoster.setSkillProficiencyList(skillProficiencyList);
}
+ private void readDayOffRequestList(NurseRoster nurseRoster, Element dayOffRequestsElement) throws JDOMException {
+ if (dayOffRequestsElement == null) {
+ return;
+ }
+ List<Element> dayOffElementList = (List<Element>) dayOffRequestsElement.getChildren();
+ List<DayOffRequest> dayOffRequestList = new ArrayList<DayOffRequest>(dayOffElementList.size());
+ long id = 0L;
+ for (Element element : dayOffElementList) {
+ assertElementName(element, "DayOff");
+ DayOffRequest dayOffRequest = new DayOffRequest();
+ dayOffRequest.setId(id);
+
+ Element employeeElement = element.getChild("EmployeeID");
+ Employee employee = employeeMap.get(employeeElement.getText());
+ if (employee == null) {
+ throw new IllegalArgumentException("The shiftDate (" + employeeElement.getText()
+ + ") of dayOffRequest (" + dayOffRequest + ") does not exist.");
+ }
+ dayOffRequest.setEmployee(employee);
+
+ Element dateElement = element.getChild("Date");
+ ShiftDate shiftDate = shiftDateMap.get(dateElement.getText());
+ if (shiftDate == null) {
+ throw new IllegalArgumentException("The date (" + dateElement.getText()
+ + ") of dayOffRequest (" + dayOffRequest + ") does not exist.");
+ }
+ dayOffRequest.setShiftDate(shiftDate);
+
+ dayOffRequest.setWeight(element.getAttribute("weight").getIntValue());
+
+ dayOffRequestList.add(dayOffRequest);
+ id++;
+ }
+ nurseRoster.setDayOffRequestList(dayOffRequestList);
+ }
+
+ private void readDayOnRequestList(NurseRoster nurseRoster, Element dayOnRequestsElement) throws JDOMException {
+ if (dayOnRequestsElement == null) {
+ return;
+ }
+ List<Element> dayOnElementList = (List<Element>) dayOnRequestsElement.getChildren();
+ List<DayOnRequest> dayOnRequestList = new ArrayList<DayOnRequest>(dayOnElementList.size());
+ long id = 0L;
+ for (Element element : dayOnElementList) {
+ assertElementName(element, "DayOn");
+ DayOnRequest dayOnRequest = new DayOnRequest();
+ dayOnRequest.setId(id);
+
+ Element employeeElement = element.getChild("EmployeeID");
+ Employee employee = employeeMap.get(employeeElement.getText());
+ if (employee == null) {
+ throw new IllegalArgumentException("The shiftDate (" + employeeElement.getText()
+ + ") of dayOnRequest (" + dayOnRequest + ") does not exist.");
+ }
+ dayOnRequest.setEmployee(employee);
+
+ Element dateElement = element.getChild("Date");
+ ShiftDate shiftDate = shiftDateMap.get(dateElement.getText());
+ if (shiftDate == null) {
+ throw new IllegalArgumentException("The date (" + dateElement.getText()
+ + ") of dayOnRequest (" + dayOnRequest + ") does not exist.");
+ }
+ dayOnRequest.setShiftDate(shiftDate);
+
+ dayOnRequest.setWeight(element.getAttribute("weight").getIntValue());
+
+ dayOnRequestList.add(dayOnRequest);
+ id++;
+ }
+ nurseRoster.setDayOnRequestList(dayOnRequestList);
+ }
+
}
}
More information about the jboss-svn-commits
mailing list