[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