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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Jun 27 07:38:51 EDT 2009


Author: ge0ffrey
Date: 2009-06-27 07:38:51 -0400 (Sat, 27 Jun 2009)
New Revision: 27183

Added:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/domain/Equipment.java
Modified:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/domain/PatientAdmissionSchedule.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/persistence/PatientAdmissionSchedulingInputConvertor.java
Log:
pas: equipment

Copied: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/domain/Equipment.java (from rev 27156, labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/domain/Specialism.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/domain/Equipment.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/domain/Equipment.java	2009-06-27 11:38:51 UTC (rev 27183)
@@ -0,0 +1,33 @@
+package org.drools.solver.examples.patientadmissionscheduling.domain;
+
+import org.apache.commons.lang.builder.CompareToBuilder;
+import org.drools.solver.examples.common.domain.AbstractPersistable;
+
+/**
+ * AKA roomproperty
+ * @author Geoffrey De Smet
+ */
+public class Equipment extends AbstractPersistable implements Comparable<Equipment> {
+
+    private String name;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int compareTo(Equipment other) {
+        return new CompareToBuilder()
+                .append(id, other.id)
+                .toComparison();
+    }
+
+    @Override
+    public String toString() {
+        return name;
+    }
+
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/domain/PatientAdmissionSchedule.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/domain/PatientAdmissionSchedule.java	2009-06-27 11:08:37 UTC (rev 27182)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/domain/PatientAdmissionSchedule.java	2009-06-27 11:38:51 UTC (rev 27183)
@@ -19,6 +19,7 @@
     private List<Specialism> specialismList;
     private List<Department> departmentList;
     private List<DepartmentSpecialism> departmentSpecialismList;
+    private List<Equipment> equipmentList;
 
     private List<Exam> examList;
 
@@ -50,11 +51,20 @@
         this.departmentSpecialismList = departmentSpecialismList;
     }
 
+    public List<Equipment> getEquipmentList() {
+        return equipmentList;
+    }
+
+    public void setEquipmentList(List<Equipment> equipmentList) {
+        this.equipmentList = equipmentList;
+    }
+
     public Collection<? extends Object> getFacts() {
         List<Object> facts = new ArrayList<Object>();
         facts.addAll(specialismList);
         facts.addAll(departmentList);
         facts.addAll(departmentSpecialismList);
+        facts.addAll(equipmentList);
 
 
 //        facts.addAll(roomList);
@@ -75,6 +85,7 @@
         clone.specialismList = specialismList;
         clone.departmentList = departmentList;
         clone.departmentSpecialismList = departmentSpecialismList;
+        clone.equipmentList = equipmentList;
 
         
 //        clone.roomList = roomList;

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/persistence/PatientAdmissionSchedulingInputConvertor.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/persistence/PatientAdmissionSchedulingInputConvertor.java	2009-06-27 11:08:37 UTC (rev 27182)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/persistence/PatientAdmissionSchedulingInputConvertor.java	2009-06-27 11:38:51 UTC (rev 27183)
@@ -11,6 +11,7 @@
 import org.drools.solver.examples.patientadmissionscheduling.domain.Specialism;
 import org.drools.solver.examples.patientadmissionscheduling.domain.Department;
 import org.drools.solver.examples.patientadmissionscheduling.domain.DepartmentSpecialism;
+import org.drools.solver.examples.patientadmissionscheduling.domain.Equipment;
 import org.drools.solver.core.solution.Solution;
 
 /**
@@ -32,36 +33,52 @@
 
     public class PatientAdmissionSchedulingInputBuilder extends InputBuilder {
 
-        private Map<Long, Specialism> specialismMap = null;
+        private PatientAdmissionSchedule patientAdmissionSchedule;
 
+        private int specialismListSize;
+        private int departmentListSize;
+        private int equipmentListSize;
+        private int roomListSize;
+        private int bedListSize;
+        private int patientListSize;
+        private int nightListSize;
+
+        private Map<Long, Specialism> idToSpecialismMap = null;
+        private Map<Integer, Equipment> indexToEquipmentMap = null;
+
         public Solution readSolution() throws IOException {
-            PatientAdmissionSchedule patientAdmissionSchedule = new PatientAdmissionSchedule();
+            patientAdmissionSchedule = new PatientAdmissionSchedule();
             patientAdmissionSchedule.setId(0L);
-
-            readConstantLine("ARTICLE BENCHMARK DATA SET");
-            int roomListSize = readIntegerValue("Rooms:");
-            int roomPropertyListSize = readIntegerValue("Roomproperties:");
-            int bedListSize = readIntegerValue("Beds:");
-            int departmentListSize = readIntegerValue("Departments:");
-            int specialismListSize = readIntegerValue("Specialisms:");
-            int patientListSize = readIntegerValue("Patients:");
-            int nightListSize = readIntegerValue("Planning horizon:");
+            readSizes();
             readEmptyLine();
             readEmptyLine();
+            readSpecialismList();
+            readEmptyLine();
+            readDepartmentListAndDepartmentSpecialismList();
+            readEmptyLine();
+            readEquipmentList();
+            readEmptyLine();
 
-            readSpecialismList(patientAdmissionSchedule, specialismListSize);
+            
 
-            readDepartmentListAndDepartmentSpecialismList(patientAdmissionSchedule, departmentListSize);
-
-
             return patientAdmissionSchedule;
         }
 
-        private void readSpecialismList(PatientAdmissionSchedule patientAdmissionSchedule,
-                int specialismListSize) throws IOException {
+        private void readSizes() throws IOException {
+            readConstantLine("ARTICLE BENCHMARK DATA SET");
+            roomListSize = readIntegerValue("Rooms:");
+            equipmentListSize = readIntegerValue("Roomproperties:");
+            bedListSize = readIntegerValue("Beds:");
+            departmentListSize = readIntegerValue("Departments:");
+            specialismListSize = readIntegerValue("Specialisms:");
+            patientListSize = readIntegerValue("Patients:");
+            nightListSize = readIntegerValue("Planning horizon:");
+        }
+
+        private void readSpecialismList() throws IOException {
             readConstantLine("SPECIALISMS:");
             List<Specialism> specialismList = new ArrayList<Specialism>(specialismListSize);
-            specialismMap = new HashMap<Long, Specialism>(specialismListSize);
+            idToSpecialismMap = new HashMap<Long, Specialism>(specialismListSize);
             for (int i = 0; i < specialismListSize; i++) {
                 String line = bufferedReader.readLine();
                 String[] lineTokens = splitBySpace(line, 2);
@@ -69,13 +86,12 @@
                 specialism.setId(Long.parseLong(lineTokens[0]));
                 specialism.setName(lineTokens[1]);
                 specialismList.add(specialism);
-                specialismMap.put(specialism.getId(), specialism);
+                idToSpecialismMap.put(specialism.getId(), specialism);
             }
             patientAdmissionSchedule.setSpecialismList(specialismList);
-            readEmptyLine();
         }
 
-        private void readDepartmentListAndDepartmentSpecialismList(PatientAdmissionSchedule patientAdmissionSchedule, int departmentListSize) throws IOException {
+        private void readDepartmentListAndDepartmentSpecialismList() throws IOException {
             readConstantLine("DEPARTMENTS:");
             List<Department> departmentList = new ArrayList<Department>(departmentListSize);
             List<DepartmentSpecialism> departmentSpecialismList = new ArrayList<DepartmentSpecialism>(
@@ -110,16 +126,35 @@
                     DepartmentSpecialism departmentSpecialism = new DepartmentSpecialism();
                     departmentSpecialism.setId((long) j / 2);
                     departmentSpecialism.setDepartment(department);
-                    departmentSpecialism.setSpecialism(specialismMap.get(specialismId));
+                    departmentSpecialism.setSpecialism(idToSpecialismMap.get(specialismId));
                     departmentSpecialism.setPriority(priority);
                     departmentSpecialismList.add(departmentSpecialism);
                 }
             }
             patientAdmissionSchedule.setDepartmentList(departmentList);
             patientAdmissionSchedule.setDepartmentSpecialismList(departmentSpecialismList);
-            readEmptyLine();
         }
 
+        private void readEquipmentList() throws IOException {
+            readConstantLine("ROOMPROPERTIES:");
+            List<Equipment> equipmentList = new ArrayList<Equipment>(equipmentListSize);
+            indexToEquipmentMap = new HashMap<Integer, Equipment>(equipmentListSize);
+            for (int i = 0; i < equipmentListSize; i++) {
+                String line = bufferedReader.readLine();
+                String[] lineTokens = splitBySpace(line, 2);
+                Equipment equipment = new Equipment();
+                equipment.setId(Long.parseLong(lineTokens[0]));
+                equipment.setName(lineTokens[1]);
+                equipmentList.add(equipment);
+                indexToEquipmentMap.put(i, equipment);
+            }
+            patientAdmissionSchedule.setEquipmentList(equipmentList);
+        }
+
+        // ************************************************************************
+        // Helper methods
+        // ************************************************************************
+
         private String[] splitBySpace(String line) {
             String[] lineTokens = line.trim().split("\\ ");
             return lineTokens;




More information about the jboss-svn-commits mailing list