[jboss-svn-commits] JBL Code SVN: r5964 - in labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools: base reteoo

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Aug 23 12:23:26 EDT 2006


Author: mark.proctor at jboss.com
Date: 2006-08-23 12:23:23 -0400 (Wed, 23 Aug 2006)
New Revision: 5964

Modified:
   labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/DroolsQuery.java
   labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
Log:
JBRULES-410 More than one Query definition causes an incorrect Rete network to be built
-The attachQuery method now correctly uses attachNode.
-DroolsQuery now implements hashcode and equals methods.

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/DroolsQuery.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/DroolsQuery.java	2006-08-23 15:16:11 UTC (rev 5963)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/DroolsQuery.java	2006-08-23 16:23:23 UTC (rev 5964)
@@ -28,4 +28,23 @@
         return this.name;
     }
 
+	public int hashCode() {
+		final int PRIME = 31;
+		int result = 1;
+		result = PRIME * result + ((name == null) ? 0 : name.hashCode());
+		return result;
+	}
+
+	public boolean equals(Object object) {
+		if (this == object) {
+			return true;
+		}
+		
+		if (object == null || getClass() != object.getClass()) {
+			return false;
+		}
+		
+		final DroolsQuery other = (DroolsQuery) object;
+		return name.equals(other.name);
+	}       
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2006-08-23 15:16:11 UTC (rev 5963)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2006-08-23 16:23:23 UTC (rev 5964)
@@ -334,13 +334,20 @@
         // incrementing offset adjustment, since we are adding a new ObjectNodeType as our
         // first column
         this.currentOffsetAdjustment += 1;
-        final ClassObjectType queryObjectType = new ClassObjectType( DroolsQuery.class );
-        final ObjectTypeNode queryObjectTypeNode = new ObjectTypeNode( this.id++,
-                                                                       this.sinklistFactory.newObjectSinkList( ObjectTypeNode.class ),
-                                                                       queryObjectType,
-                                                                       this.rete );
-        queryObjectTypeNode.attach();
 
+        //        final ObjectSource objectSource = attachNode( new ObjectTypeNode( this.id++,
+        //                                                                          this.sinklistFactory.newObjectSinkList( ObjectTypeNode.class ),
+        //                                                                          new ClassObjectType( InitialFact.class ),
+        //                                                                          this.rete ) );
+        //
+        //        this.tupleSource = attachNode( new LeftInputAdapterNode( this.id++,
+        //                                                                 objectSource ) );
+
+        final ObjectSource objectTypeSource = attachNode( new ObjectTypeNode( this.id++,
+                                                                              this.sinklistFactory.newObjectSinkList( ObjectTypeNode.class ),
+                                                                              new ClassObjectType( DroolsQuery.class ),
+                                                                              this.rete ) );
+
         final ClassFieldExtractor extractor = new ClassFieldExtractor( DroolsQuery.class,
                                                                        "name" );
 
@@ -353,17 +360,13 @@
                                                                     extractor,
                                                                     evaluator );
 
-        final AlphaNode alphaNode = new AlphaNode( this.id++,
-                                                   this.sinklistFactory.newObjectSinkList( AlphaNode.class ),
-                                                   constraint,
-                                                   queryObjectTypeNode );
-        alphaNode.attach();
+        final ObjectSource alphaNodeSource = attachNode( new AlphaNode( this.id++,
+                                                                        this.sinklistFactory.newObjectSinkList( AlphaNode.class ),
+                                                                        constraint,
+                                                                        objectTypeSource ) );
 
-        final LeftInputAdapterNode liaNode = new LeftInputAdapterNode( this.id++,
-                                                                       alphaNode );
-        liaNode.attach();
-
-        this.tupleSource = liaNode;
+        this.tupleSource = attachNode( new LeftInputAdapterNode( this.id++,
+                                                                 alphaNodeSource ) );
     }
 
     private BetaNodeBinder attachColumn(final Column column,




More information about the jboss-svn-commits mailing list