[jboss-svn-commits] JBL Code SVN: r19210 - labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/persistence.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Mar 23 05:35:38 EDT 2008
Author: ge0ffrey
Date: 2008-03-23 05:35:37 -0400 (Sun, 23 Mar 2008)
New Revision: 19210
Modified:
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/persistence/CurriculumCourseInputConvertor.java
Log:
fix unavailable
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/persistence/CurriculumCourseInputConvertor.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/persistence/CurriculumCourseInputConvertor.java 2008-03-23 09:22:38 UTC (rev 19209)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/persistence/CurriculumCourseInputConvertor.java 2008-03-23 09:35:37 UTC (rev 19210)
@@ -5,6 +5,7 @@
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -91,7 +92,7 @@
schedule, courseListSize);
readRoomList(bufferedReader,
schedule, roomListSize);
- Map<Integer[], Period> periodMap = createPeriodListAndDayListAndTimeslotList(
+ Map<List<Integer>, Period> periodMap = createPeriodListAndDayListAndTimeslotList(
schedule, dayListSize, timeslotListSize);
readCurriculumList(bufferedReader,
schedule, courseMap, curriculumListSize);
@@ -174,10 +175,10 @@
schedule.setRoomList(roomList);
}
- private Map<Integer[], Period> createPeriodListAndDayListAndTimeslotList(
+ private Map<List<Integer>, Period> createPeriodListAndDayListAndTimeslotList(
CurriculumCourseSchedule schedule, int dayListSize, int timeslotListSize) throws IOException {
int periodListSize = dayListSize * timeslotListSize;
- Map<Integer[], Period> periodMap = new HashMap<Integer[], Period>(periodListSize);
+ Map<List<Integer>, Period> periodMap = new HashMap<List<Integer>, Period>(periodListSize);
List<Day> dayList = new ArrayList<Day>(dayListSize);
for (int i = 0; i < dayListSize; i++) {
Day day = new Day();
@@ -202,7 +203,7 @@
period.setDay(dayList.get(i));
period.setTimeslot(timeslotList.get(j));
periodList.add(period);
- periodMap.put(new Integer[]{i, j}, period);
+ periodMap.put(Arrays.asList(i, j), period);
}
}
schedule.setPeriodList(periodList);
@@ -231,6 +232,10 @@
}
for (int j = 2; j < lineTokens.length; j++) {
Course course = courseMap.get(lineTokens[j]);
+ if (course == null) {
+ throw new IllegalArgumentException("Read line (" + line + ") uses an unexisting course("
+ + lineTokens[j] + ").");
+ }
course.getCurriculumList().add(curriculum);
}
curriculumList.add(curriculum);
@@ -239,7 +244,7 @@
}
private void readUnavailablePeriodConstraintList(BufferedReader bufferedReader, CurriculumCourseSchedule schedule,
- Map<String, Course> courseMap, Map<Integer[], Period> periodMap, int unavailablePeriodConstraintListSize)
+ Map<String, Course> courseMap, Map<List<Integer>, Period> periodMap, int unavailablePeriodConstraintListSize)
throws IOException {
readHeader(bufferedReader, "UNAVAILABILITY_CONSTRAINTS:");
List<UnavailablePeriodConstraint> constraintList = new ArrayList<UnavailablePeriodConstraint>(
@@ -254,8 +259,14 @@
throw new IllegalArgumentException("Read line (" + line + ") is expected to contain 3 tokens.");
}
constraint.setCourse(courseMap.get(lineTokens[0]));
- constraint.setPeriod(periodMap.get(new Integer[]{
- Integer.parseInt(lineTokens[1]), Integer.parseInt(lineTokens[2])}));
+ int dayIndex = Integer.parseInt(lineTokens[1]);
+ int timeslotIndex = Integer.parseInt(lineTokens[2]);
+ Period period = periodMap.get(Arrays.asList(dayIndex, timeslotIndex));
+ if (period == null) {
+ throw new IllegalArgumentException("Read line (" + line + ") uses an unexisting period("
+ + dayIndex + " " + timeslotIndex + ").");
+ }
+ constraint.setPeriod(period);
constraintList.add(constraint);
}
schedule.setUnavailablePeriodConstraintList(constraintList);
More information about the jboss-svn-commits
mailing list