|
From: <jbo...@li...> - 2006-06-06 01:50:14
|
Author: mar...@jb...
Date: 2006-06-04 23:33:42 -0400 (Sun, 04 Jun 2006)
New Revision: 4603
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/EvalCondition.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java
Log:
JBRULES-281 node sharing for eval, predicate etc incorrectly sharing
-Made eval, predicate and returnvalue equals check compare column and
extractor for declaration.
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java 2006-06-05 02:29:02 UTC (rev 4602)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java 2006-06-05 03:33:42 UTC (rev 4603)
@@ -177,7 +177,7 @@
final Declaration other = (Declaration) object;
- return this.column == other.column && this.identifier.equals( other.identifier ) && this.extractor.getObjectType().equals( other.extractor.getObjectType() );
+ return this.column == other.column && this.identifier.equals( other.identifier ) && this.extractor.equals( other.extractor );
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/EvalCondition.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/EvalCondition.java 2006-06-05 02:29:02 UTC (rev 4602)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/EvalCondition.java 2006-06-05 03:33:42 UTC (rev 4603)
@@ -93,7 +93,22 @@
}
final EvalCondition other = (EvalCondition) object;
+
+ if ( this.requiredDeclarations.length != other.requiredDeclarations.length ) {
+ return false;
+ }
+
+ for ( int i = 0, length = this.requiredDeclarations.length; i < length; i++ ) {
+ if ( this.requiredDeclarations[i].getColumn() != other.requiredDeclarations[i].getColumn() ) {
+ return false;
+ }
+ if ( !this.requiredDeclarations[i].getExtractor().equals( other.requiredDeclarations[i].getExtractor() ) ) {
+ return false;
+ }
+ }
+
+
return this.expression.equals( other.expression );
}
};
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java 2006-06-05 02:29:02 UTC (rev 4602)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java 2006-06-05 03:33:42 UTC (rev 4603)
@@ -110,7 +110,29 @@
}
final PredicateConstraint other = (PredicateConstraint) object;
+
+ if ( this.requiredDeclarations.length != other.requiredDeclarations.length ) {
+ return false;
+ }
+
+ if ( this.declaration.getColumn() != other.declaration.getColumn() ) {
+ return false;
+ }
+ if ( !this.declaration.getExtractor().equals( other.declaration.getExtractor() ) ) {
+ return false;
+ }
+
+ for ( int i = 0, length = this.requiredDeclarations.length; i < length; i++ ) {
+ if ( this.requiredDeclarations[i].getColumn() != other.requiredDeclarations[i].getColumn() ) {
+ return false;
+ }
+
+ if ( !this.requiredDeclarations[i].getExtractor().equals( other.requiredDeclarations[i].getExtractor() ) ) {
+ return false;
+ }
+ }
+
return this.expression.equals( other.expression );
}
};
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java 2006-06-05 02:29:02 UTC (rev 4602)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java 2006-06-05 03:33:42 UTC (rev 4603)
@@ -109,7 +109,21 @@
}
final ReturnValueConstraint other = (ReturnValueConstraint) object;
+
+ if ( this.requiredDeclarations.length != other.requiredDeclarations.length ) {
+ return false;
+ }
+
+ for ( int i = 0, length = this.requiredDeclarations.length; i < length; i++ ) {
+ if ( this.requiredDeclarations[i].getColumn() != other.requiredDeclarations[i].getColumn() ) {
+ return false;
+ }
+ if ( !this.requiredDeclarations[i].getExtractor().equals( other.requiredDeclarations[i].getExtractor() ) ) {
+ return false;
+ }
+ }
+
return this.expression.equals( other.expression );
}
}
\ No newline at end of file
|