[jboss-svn-commits] JBL Code SVN: r33008 - in labs/jbossrules/trunk/drools-planner: drools-planner-examples/src/main/resources/org/drools/planner/examples/curriculumcourse/solver and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat May 22 04:46:20 EDT 2010


Author: ge0ffrey
Date: 2010-05-22 04:46:20 -0400 (Sat, 22 May 2010)
New Revision: 33008

Modified:
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/constraint/DoubleConstraintOccurrence.java
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/constraint/IntConstraintOccurrence.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/curriculumcourse/solver/curriculumCourseScoreRules.drl
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/examination/solver/examinationScoreRules.drl
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl
   labs/jbossrules/trunk/drools-planner/src/main/assembly/docs/UpgradeFromPreviousVersionRecipe.txt
Log:
Remove HACK for JBRULES-1804

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/constraint/DoubleConstraintOccurrence.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/constraint/DoubleConstraintOccurrence.java	2010-05-22 07:12:02 UTC (rev 33007)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/constraint/DoubleConstraintOccurrence.java	2010-05-22 08:46:20 UTC (rev 33008)
@@ -1,5 +1,8 @@
 package org.drools.planner.core.score.constraint;
 
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
 /**
  * @author Geoffrey De Smet
  */
@@ -28,30 +31,30 @@
         return weight;
     }
 
-//    public boolean equals(Object o) {
-//        if (this == o) {
-//            return true;
-//        } else if (o instanceof IntConstraintOccurrence) {
-//            IntConstraintOccurrence other = (IntConstraintOccurrence) o;
-//            return new EqualsBuilder()
-//                    .appendSuper(super.equals(other))
-//                    .append(weight, other.weight)
-//                    .isEquals();
-//        } else {
-//            return false;
-//        }
-//    }
-//
-//    public int hashCode() {
-//        return new HashCodeBuilder()
-//                .appendSuper(super.hashCode())
-//                .append(weight)
-//                .toHashCode();
-//    }
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        } else if (o instanceof IntConstraintOccurrence) {
+            IntConstraintOccurrence other = (IntConstraintOccurrence) o;
+            return new EqualsBuilder()
+                    .appendSuper(super.equals(other))
+                    .append(weight, other.weight)
+                    .isEquals();
+        } else {
+            return false;
+        }
+    }
 
+    public int hashCode() {
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(weight)
+                .toHashCode();
+    }
+
     @Override
     public String toString() {
         return super.toString() + "=" + weight;
     }
 
-}
\ No newline at end of file
+}

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/constraint/IntConstraintOccurrence.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/constraint/IntConstraintOccurrence.java	2010-05-22 07:12:02 UTC (rev 33007)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/constraint/IntConstraintOccurrence.java	2010-05-22 08:46:20 UTC (rev 33008)
@@ -1,5 +1,8 @@
 package org.drools.planner.core.score.constraint;
 
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
 /**
  * @author Geoffrey De Smet
  */
@@ -28,27 +31,27 @@
         return weight;
     }
 
-//    public boolean equals(Object o) {
-//        if (this == o) {
-//            return true;
-//        } else if (o instanceof IntConstraintOccurrence) {
-//            IntConstraintOccurrence other = (IntConstraintOccurrence) o;
-//            return new EqualsBuilder()
-//                    .appendSuper(super.equals(other))
-//                    .append(weight, other.weight)
-//                    .isEquals();
-//        } else {
-//            return false;
-//        }
-//    }
-//
-//    public int hashCode() {
-//        return new HashCodeBuilder()
-//                .appendSuper(super.hashCode())
-//                .append(weight)
-//                .toHashCode();
-//    }
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        } else if (o instanceof IntConstraintOccurrence) {
+            IntConstraintOccurrence other = (IntConstraintOccurrence) o;
+            return new EqualsBuilder()
+                    .appendSuper(super.equals(other))
+                    .append(weight, other.weight)
+                    .isEquals();
+        } else {
+            return false;
+        }
+    }
 
+    public int hashCode() {
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(weight)
+                .toHashCode();
+    }
+
     @Override
     public String toString() {
         return super.toString() + "=" + weight;

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/curriculumcourse/solver/curriculumCourseScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/curriculumcourse/solver/curriculumCourseScoreRules.drl	2010-05-22 07:12:02 UTC (rev 33007)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/curriculumcourse/solver/curriculumCourseScoreRules.drl	2010-05-22 08:46:20 UTC (rev 33008)
@@ -149,14 +149,6 @@
             and exists Lecture(course == $course, room == $room),
             count($room)
         );
-        // HACK to fix wierd truth maintance behavior in drools
-        // because making weight part of the equals/hashcode doesn't cut it
-        not IntConstraintOccurrence(
-            ruleId == "roomStability",
-            constraintType == ConstraintType.NEGATIVE_SOFT,
-            causes contains $course,
-            eval(weight != ($roomCount.intValue() - 1))
-        );
     then
         insertLogical(new IntConstraintOccurrence("roomStability", ConstraintType.NEGATIVE_SOFT,
                 ($roomCount.intValue() - 1),

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/examination/solver/examinationScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/examination/solver/examinationScoreRules.drl	2010-05-22 07:12:02 UTC (rev 33007)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/examination/solver/examinationScoreRules.drl	2010-05-22 08:46:20 UTC (rev 33008)
@@ -57,15 +57,6 @@
             Exam(period == $period, room == $room, $studentSize : topicStudentSize),
             sum($studentSize) // Vote for http://jira.jboss.com/jira/browse/JBRULES-1075
         );
-        // HACK to fix wierd truth maintenance behavior in drools
-        // because making weight part of the equals/hashcode doesn't cut it
-        // Vote for https://jira.jboss.org/jira/browse/JBRULES-1804
-        not IntConstraintOccurrence(
-            ruleId == "roomCapacityTooSmall",
-            constraintType == ConstraintType.NEGATIVE_HARD,
-            causes contains $period, causes contains $room,
-            eval(weight != ($totalStudentSize.intValue() - $capacity))
-        );
     then
         insertLogical(new IntConstraintOccurrence("roomCapacityTooSmall", ConstraintType.NEGATIVE_HARD,
                 ($totalStudentSize.intValue() - $capacity),

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl	2010-05-22 07:12:02 UTC (rev 33007)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl	2010-05-22 08:46:20 UTC (rev 33008)
@@ -46,16 +46,6 @@
             $assignment : EmployeeAssignment(shift == $shift),
             count($assignment)
         )
-
-        // HACK to fix wierd truth maintenance behavior in drools
-        // because making weight part of the equals/hashcode doesn't cut it
-        // Vote for https://jira.jboss.org/jira/browse/JBRULES-1804
-        not IntConstraintOccurrence(
-            ruleId == "requiredEmployeeSizePerShift",
-            constraintType == ConstraintType.NEGATIVE_HARD,
-            causes contains $shift,
-            eval(weight != Math.abs($requiredEmployeeSize - $totalEmployeeSize.intValue()))
-        )
     then
         insertLogical(new IntConstraintOccurrence("requiredEmployeeSizePerShift", ConstraintType.NEGATIVE_HARD,
                 Math.abs($requiredEmployeeSize - $totalEmployeeSize.intValue()),

Modified: labs/jbossrules/trunk/drools-planner/src/main/assembly/docs/UpgradeFromPreviousVersionRecipe.txt
===================================================================
--- labs/jbossrules/trunk/drools-planner/src/main/assembly/docs/UpgradeFromPreviousVersionRecipe.txt	2010-05-22 07:12:02 UTC (rev 33007)
+++ labs/jbossrules/trunk/drools-planner/src/main/assembly/docs/UpgradeFromPreviousVersionRecipe.txt	2010-05-22 08:46:20 UTC (rev 33008)
@@ -255,7 +255,7 @@
     </localSearchSolver>
 
 
-True modify has been implemented.
+True modify has been implemented. This is a great performance boost.
 Before in *.java:
     workingMemory.modifyRetract(xHandle); // before changes are made
     x.set...;
@@ -263,3 +263,21 @@
 After in *.java:
     x.set...;
     workingMemory.update(queenHandle, queen); // after changes are made
+
+JBRULES-1804 has been fixed. The HACK to fix wierd truth maintenance behavior is obsolete.
+Before in *.drl:
+        // HACK to fix wierd truth maintenance behavior in drools
+        // because making weight part of the equals/hashcode doesn't cut it
+        // Vote for https://jira.jboss.org/jira/browse/JBRULES-1804
+        not IntConstraintOccurrence(
+            ruleId == "...",
+            constraintType == ConstraintType....,
+            causes contains $..., causes contains $...,
+            eval(weight != (...))
+        );
+    then ...
+After in *.drl:
+    then ...
+
+A custom ConstraintOccurrence implementation should now use the weight in its equals/hashcode methods.
+IntConstraintOccurrence and DoubleConstraintOccurrence have been changed as needed.



More information about the jboss-svn-commits mailing list