[jboss-svn-commits] JBL Code SVN: r27190 - labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/persistence.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Jun 27 10:58:56 EDT 2009


Author: ge0ffrey
Date: 2009-06-27 10:58:56 -0400 (Sat, 27 Jun 2009)
New Revision: 27190

Modified:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/persistence/PatientAdmissionSchedulingInputConvertor.java
Log:
pas domain: fix id's not unique bug

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 14:51:30 UTC (rev 27189)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionscheduling/persistence/PatientAdmissionSchedulingInputConvertor.java	2009-06-27 14:58:56 UTC (rev 27190)
@@ -80,6 +80,8 @@
             readPatientListAndAdmissionListAndRequiredPatientEquipmentListAndPreferredPatientEquipmentList();
             readEmptyLine();
             readConstantLine("END.");
+
+
             return patientAdmissionSchedule;
         }
 
@@ -116,6 +118,7 @@
             idToDepartmentMap = new HashMap<Long, Department>(departmentListSize);
             List<DepartmentSpecialism> departmentSpecialismList = new ArrayList<DepartmentSpecialism>(
                     departmentListSize * 5);
+            long departmentSpecialismId = 0L;
             for (int i = 0; i < departmentListSize; i++) {
                 String line = bufferedReader.readLine();
                 String[] lineTokens = splitByPipeline(line, 2);
@@ -143,12 +146,13 @@
                 }
                 for (int j = 0; j < departmentSpecialismTokens.length; j += 2) {
                     DepartmentSpecialism departmentSpecialism = new DepartmentSpecialism();
-                    departmentSpecialism.setId((long) j / 2);
+                    departmentSpecialism.setId(departmentSpecialismId);
                     departmentSpecialism.setDepartment(department);
                     departmentSpecialism.setPriority(Integer.parseInt(departmentSpecialismTokens[j]));
                     departmentSpecialism.setSpecialism(idToSpecialismMap.get(
                             Long.parseLong(departmentSpecialismTokens[j + 1])));
                     departmentSpecialismList.add(departmentSpecialism);
+                    departmentSpecialismId++;
                 }
             }
             patientAdmissionSchedule.setDepartmentList(departmentList);
@@ -177,6 +181,8 @@
             idToRoomMap = new HashMap<Long, Room>(roomListSize);
             List<RoomSpecialism> roomSpecialismList = new ArrayList<RoomSpecialism>(roomListSize * 5);
             List<RoomEquipment> roomEquipmentList = new ArrayList<RoomEquipment>(roomListSize * 2);
+            long roomSpecialismId = 0L;
+            long roomEquipmentId = 0L;
             for (int i = 0; i < roomListSize; i++) {
                 String line = bufferedReader.readLine();
                 String[] lineTokens = splitByPipeline(line, 6);
@@ -202,11 +208,12 @@
                     int priority = Integer.parseInt(roomSpecialismTokens[j]);
                     long specialismId = Long.parseLong(roomSpecialismTokens[j + 1]);
                     RoomSpecialism roomSpecialism = new RoomSpecialism();
-                    roomSpecialism.setId((long) j / 2);
+                    roomSpecialism.setId(roomSpecialismId);
                     roomSpecialism.setRoom(room);
                     roomSpecialism.setSpecialism(idToSpecialismMap.get(specialismId));
                     roomSpecialism.setPriority(priority);
                     roomSpecialismList.add(roomSpecialism);
+                    roomSpecialismId++;
                 }
 
                 String[] roomEquipmentTokens = splitBySpace(lineTokens[5]);
@@ -219,10 +226,11 @@
                     int hasEquipment = Integer.parseInt(roomEquipmentTokens[j]);
                     if (hasEquipment == 1) {
                         RoomEquipment roomEquipment = new RoomEquipment();
-                        roomEquipment.setId((long) j);
+                        roomEquipment.setId(roomEquipmentId);
                         roomEquipment.setRoom(room);
                         roomEquipment.setEquipment(indexToEquipmentMap.get(j));
                         roomEquipmentList.add(roomEquipment);
+                        roomEquipmentId++;
                     } else if (hasEquipment != 0) {
                         throw new IllegalArgumentException("Read line (" + line
                             + ") is expected to have 0 or 1 hasEquipment (" + hasEquipment + ").");
@@ -261,12 +269,14 @@
         private void generateNightList() {
             List<Night> nightList = new ArrayList<Night>(nightListSize);
             indexToNightMap = new HashMap<Integer, Night>(nightListSize);
+            long nightId = 0L;
             for (int i = 0; i < nightListSize; i++) {
                 Night night = new Night();
-                night.setId((long) i);
+                night.setId(nightId);
                 night.setIndex(i);
                 nightList.add(night);
                 indexToNightMap.put(i, night);
+                nightId++;
             }
             patientAdmissionSchedule.setNightList(nightList);
         }
@@ -277,6 +287,9 @@
             List<Admission> admissionList = new ArrayList<Admission>(patientListSize);
             List<RequiredPatientEquipment> requiredPatientEquipmentList = new ArrayList<RequiredPatientEquipment>(patientListSize * equipmentListSize);
             List<PreferredPatientEquipment> preferredPatientEquipmentList = new ArrayList<PreferredPatientEquipment>(patientListSize * equipmentListSize);
+            long admissionId = 0L;
+            long requiredPatientEquipmentId = 0L;
+            long preferredPatientEquipmentId = 0L;
             for (int i = 0; i < patientListSize; i++) {
                 String line = bufferedReader.readLine();
                 String[] lineTokens = splitByPipeline(line, 6);
@@ -306,7 +319,6 @@
                             + ") is expected to contain " + ((patientAdmissionListSize * 2) + 1)
                             + " number of tokens after 2th pipeline (|).");
                 }
-                long admissionId = 0;
                 int nextFirstNightIndex = firstNight.getIndex();
                 for (int j = 1; j < admissionTokens.length; j += 2) {
                     long specialismId = Long.parseLong(admissionTokens[j]);
@@ -337,11 +349,12 @@
                 for (int j = 0; j < requiredPatientEquipmentTokens.length; j++) {
                     int hasEquipment = Integer.parseInt(requiredPatientEquipmentTokens[j]);
                     if (hasEquipment == 1) {
-                        RequiredPatientEquipment patientEquipment = new RequiredPatientEquipment();
-                        patientEquipment.setId((long) j);
-                        patientEquipment.setPatient(patient);
-                        patientEquipment.setEquipment(indexToEquipmentMap.get(j));
-                        requiredPatientEquipmentList.add(patientEquipment);
+                        RequiredPatientEquipment requiredPatientEquipment = new RequiredPatientEquipment();
+                        requiredPatientEquipment.setId(requiredPatientEquipmentId);
+                        requiredPatientEquipment.setPatient(patient);
+                        requiredPatientEquipment.setEquipment(indexToEquipmentMap.get(j));
+                        requiredPatientEquipmentList.add(requiredPatientEquipment);
+                        requiredPatientEquipmentId++;
                     } else if (hasEquipment != 0) {
                         throw new IllegalArgumentException("Read line (" + line
                             + ") is expected to have 0 or 1 hasEquipment (" + hasEquipment + ").");
@@ -358,11 +371,12 @@
                 for (int j = 0; j < preferredPatientEquipmentTokens.length; j++) {
                     int hasEquipment = Integer.parseInt(preferredPatientEquipmentTokens[j]);
                     if (hasEquipment == 1) {
-                        PreferredPatientEquipment patientEquipment = new PreferredPatientEquipment();
-                        patientEquipment.setId((long) j);
-                        patientEquipment.setPatient(patient);
-                        patientEquipment.setEquipment(indexToEquipmentMap.get(j));
-                        preferredPatientEquipmentList.add(patientEquipment);
+                        PreferredPatientEquipment preferredPatientEquipment = new PreferredPatientEquipment();
+                        preferredPatientEquipment.setId(preferredPatientEquipmentId);
+                        preferredPatientEquipment.setPatient(patient);
+                        preferredPatientEquipment.setEquipment(indexToEquipmentMap.get(j));
+                        preferredPatientEquipmentList.add(preferredPatientEquipment);
+                        preferredPatientEquipmentId++;
                     } else if (hasEquipment != 0) {
                         throw new IllegalArgumentException("Read line (" + line
                             + ") is expected to have 0 or 1 hasEquipment (" + hasEquipment + ").");
@@ -382,12 +396,14 @@
         private void ensureEnoughNights(int lastNightIndex) {
             List<Night> nightList = patientAdmissionSchedule.getNightList();
             if (lastNightIndex >= nightList.size()) {
+                long nightId = nightList.size();
                 for (int j = nightList.size(); j <= lastNightIndex; j++) {
                     Night night = new Night();
-                    night.setId((long) j);
+                    night.setId(nightId);
                     night.setIndex(j);
                     nightList.add(night);
                     indexToNightMap.put(j, night);
+                    nightId++;
                 }
             }
         }




More information about the jboss-svn-commits mailing list