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 |