[jboss-svn-commits] JBL Code SVN: r31600 - in labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz: drools-pipeline/drools-camel/src/test/java/org/drools/camel/component and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Feb 11 23:45:15 EST 2010


Author: lucazamador
Date: 2010-02-11 23:45:15 -0500 (Thu, 11 Feb 2010)
New Revision: 31600

Modified:
   labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/rule/impl/FlatQueryResults.java
   labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbTest.java
   labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/ResultTranslator.java
Log:
transformation to flatQueryResults completed

Modified: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/rule/impl/FlatQueryResults.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/rule/impl/FlatQueryResults.java	2010-02-12 02:01:18 UTC (rev 31599)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/rule/impl/FlatQueryResults.java	2010-02-12 04:45:15 UTC (rev 31600)
@@ -33,7 +33,7 @@
         this.results = results;
         this.factHandles = factHandles;
     }
-
+    
     public FlatQueryResults(org.drools.QueryResults results) {
         Declaration[] declrs = results.getDeclarations().values().toArray( new Declaration[results.getDeclarations().size()] );
         this.results = new ArrayList<ArrayList<Object>>( results.size() );

Modified: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbTest.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbTest.java	2010-02-12 02:01:18 UTC (rev 31599)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-camel/src/test/java/org/drools/camel/component/CamelEndpointWithJaxbTest.java	2010-02-12 04:45:15 UTC (rev 31600)
@@ -309,10 +309,10 @@
 
 		String rule = "";
 		rule += "package org.drools \n";
-		rule += "import org.drools.model.Person \n";
+		rule += "import org.drools.pipeline.camel.Person \n";
 		rule += "global java.util.List list \n";
 		rule += "query persons \n";
-		rule += "   $p : Person() \n";
+		rule += "   $p : Person(name != null) \n";
 		rule += "end \n";
 		rule += "query personWithName(String param)\n";
 		rule += "   $p : Person(name == param) \n";

Modified: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/ResultTranslator.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/ResultTranslator.java	2010-02-12 02:01:18 UTC (rev 31599)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/ResultTranslator.java	2010-02-12 04:45:15 UTC (rev 31600)
@@ -1,6 +1,9 @@
 package org.drools.runtime.pipeline.impl;
 
 import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -9,7 +12,10 @@
 import javax.xml.transform.TransformerException;
 
 import org.drools.FactHandle;
+import org.drools.QueryResult;
+import org.drools.QueryResults;
 import org.drools.common.DisconnectedFactHandle;
+import org.drools.rule.Declaration;
 import org.drools.runtime.impl.ExecutionResultImpl;
 import org.drools.runtime.rule.impl.FlatQueryResults;
 import org.drools.runtime.rule.impl.NativeQueryResults;
@@ -23,8 +29,35 @@
 		}
 		
 		if (obj instanceof NativeQueryResults) {
-			NativeQueryResults nativeQueryResults = (NativeQueryResults)obj;
-			return new FlatQueryResults(nativeQueryResults.getResults());
+			NativeQueryResults nativeQueryResults = (NativeQueryResults) obj;
+            Declaration[] declrs = nativeQueryResults.getDeclarations().values().toArray( new Declaration[nativeQueryResults.getDeclarations().size()] );
+            int length = declrs.length;
+            
+            HashMap<String, Integer> identifiers = new HashMap<String, Integer>( length );
+            for ( int i = 0; i < length; i++ ) {
+                identifiers.put( declrs[i].getIdentifier(), i );
+            }
+            
+            ArrayList<ArrayList<Object>> results = new ArrayList<ArrayList<Object>>( nativeQueryResults.size() );
+            ArrayList<ArrayList<org.drools.runtime.rule.FactHandle>> factHandles = new ArrayList<ArrayList<org.drools.runtime.rule.FactHandle>> ( nativeQueryResults.size() );
+            
+            QueryResults queryResults = nativeQueryResults.getResults();
+            Iterator<QueryResult> iterator = queryResults.iterator();
+            while (iterator.hasNext()) {
+            	QueryResult result = iterator.next();
+            	FactHandle[] handles = result.getFactHandles();
+            	ArrayList<Object> objectList = new ArrayList<Object>();
+            	ArrayList<org.drools.runtime.rule.FactHandle> factHandleList = new ArrayList<org.drools.runtime.rule.FactHandle>();
+            	for (int i=0; i < handles.length; i++) {
+            		DisconnectedFactHandle factHandle = (DisconnectedFactHandle) handles[i];
+            		objectList.add(factHandle.getObject());
+            		factHandleList.add(factHandle);
+            	}
+            	results.add(objectList);
+            	factHandles.add(factHandleList);
+            }
+
+            return new FlatQueryResults(identifiers, results, factHandles);
 		}
 		
 		Class<? extends Object> vClass = obj.getClass();



More information about the jboss-svn-commits mailing list