[jboss-svn-commits] JBL Code SVN: r19208 - in labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main: java/org/drools/solver/examples/itc2007/curriculumcourse/persistence and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Mar 23 04:58:26 EDT 2008


Author: ge0ffrey
Date: 2008-03-23 04:58:25 -0400 (Sun, 23 Mar 2008)
New Revision: 19208

Modified:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Course.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java
   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/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl
Log:
curriculumcourse fix multiple curriculum in course

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Course.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Course.java	2008-03-23 04:47:33 UTC (rev 19207)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Course.java	2008-03-23 08:58:25 UTC (rev 19208)
@@ -1,5 +1,7 @@
 package org.drools.solver.examples.itc2007.curriculumcourse.domain;
 
+import java.util.List;
+
 import org.apache.commons.lang.builder.CompareToBuilder;
 import org.drools.solver.examples.common.domain.AbstractPersistable;
 
@@ -10,12 +12,13 @@
 
     private String code;
 
-    private Curriculum curriculum;
     private Teacher teacher;
     private int lectureSize;
-    private int studentSize;
     private int minWorkingDaySize;
 
+    private List<Curriculum> curriculumList;
+    private int studentSize;
+
     public String getCode() {
         return code;
     }
@@ -24,14 +27,6 @@
         this.code = code;
     }
 
-    public Curriculum getCurriculum() {
-        return curriculum;
-    }
-
-    public void setCurriculum(Curriculum curriculum) {
-        this.curriculum = curriculum;
-    }
-
     public Teacher getTeacher() {
         return teacher;
     }
@@ -48,6 +43,22 @@
         this.lectureSize = lectureSize;
     }
 
+    public int getMinWorkingDaySize() {
+        return minWorkingDaySize;
+    }
+
+    public void setMinWorkingDaySize(int minWorkingDaySize) {
+        this.minWorkingDaySize = minWorkingDaySize;
+    }
+
+    public List<Curriculum> getCurriculumList() {
+        return curriculumList;
+    }
+
+    public void setCurriculumList(List<Curriculum> curriculumList) {
+        this.curriculumList = curriculumList;
+    }
+
     public int getStudentSize() {
         return studentSize;
     }
@@ -56,14 +67,6 @@
         this.studentSize = studentSize;
     }
 
-    public int getMinWorkingDaySize() {
-        return minWorkingDaySize;
-    }
-
-    public void setMinWorkingDaySize(int minWorkingDaySize) {
-        this.minWorkingDaySize = minWorkingDaySize;
-    }
-
     public int compareTo(Course other) {
         return new CompareToBuilder()
                 .append(code, other.code)
@@ -72,7 +75,7 @@
 
     @Override
     public String toString() {
-        return code + "{" + curriculum + "," + teacher +"}";
+        return code + "{" + teacher +"}";
     }
 
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java	2008-03-23 04:47:33 UTC (rev 19207)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java	2008-03-23 08:58:25 UTC (rev 19208)
@@ -50,14 +50,6 @@
     }
 
 
-    public Curriculum getCurriculum() {
-        return getCourse().getCurriculum();
-    }
-
-    public Teacher getTeacher() {
-        return getCourse().getTeacher();
-    }
-
     public int compareTo(Lecture other) {
         return new CompareToBuilder()
                 .append(period, other.period)

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 04:47:33 UTC (rev 19207)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/persistence/CurriculumCourseInputConvertor.java	2008-03-23 08:58:25 UTC (rev 19208)
@@ -131,6 +131,7 @@
             course.setTeacher(findOrCreateTeacher(teacherMap, lineTokens[1]));
             course.setLectureSize(Integer.parseInt(lineTokens[2]));
             course.setMinWorkingDaySize(Integer.parseInt(lineTokens[3]));
+            course.setCurriculumList(new ArrayList<Curriculum>());
             course.setStudentSize(Integer.parseInt(lineTokens[4]));
             courseList.add(course);
             courseMap.put(course.getCode(), course);
@@ -230,7 +231,7 @@
             }
             for (int j = 2; j < lineTokens.length; j++) {
                 Course course = courseMap.get(lineTokens[j]);
-                course.setCurriculum(curriculum);
+                course.getCurriculumList().add(curriculum);
             }
             curriculumList.add(curriculum);
         }

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl	2008-03-23 04:47:33 UTC (rev 19207)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl	2008-03-23 08:58:25 UTC (rev 19208)
@@ -27,24 +27,20 @@
 
 // Conflicts: Two conflicting lectures in the same period.
 // Three conflicting lectures count as 3 violations: one for each pair.
-rule "curriculumConflictingLecturesInSamePeriod"
+rule "conflictingLecturesInSamePeriod"
     when
-        $leftLecture : Lecture($curriculum : curriculum, $period : period);
-        $rightLecture : Lecture(curriculum == $curriculum, period == $period);
+        $leftCourse : Course($id : id, $leftTeacher : teacher, $leftCurriculumList : curriculumList);
+        $rightCourse : Course(id > $id, $rightTeacher : teacher, $rightCurriculumList : curriculumList);
+        eval($leftTeacher == $rightTeacher)
+            or exists Curriculum(this memberOf $leftCurriculumList, this memberOf $rightCurriculumList);
+
+        $leftLecture : Lecture(course == $leftCourse, $period : period);
+        $rightLecture : Lecture(course == $rightCourse, period == $period);
     then
-        insertLogical(new IntConstraintOccurrence("curriculumConflictingLecturesInSamePeriod",
+        insertLogical(new IntConstraintOccurrence("conflictingLecturesInSamePeriod",
                 ConstraintType.NEGATIVE_HARD, 1,
                 $leftLecture, $rightLecture));
 end
-rule "teacherConflictingLecturesInSamePeriod"
-    when
-        $leftLecture : Lecture($teacher : teacher, $period : period);
-        $rightLecture : Lecture(teacher == $teacher, period == $period);
-    then
-        insertLogical(new IntConstraintOccurrence("teacherConflictingLecturesInSamePeriod", ConstraintType.NEGATIVE_HARD,
-                1,
-                $leftLecture, $rightLecture));
-end
 
 // RoomOccupancy: Two lectures in the same room at the same period.
 // Any extra lecture in the same period and room counts as one more violation.




More information about the jboss-svn-commits mailing list