[jboss-svn-commits] JBL Code SVN: r31637 - labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Feb 12 14:30:56 EST 2010
Author: baunax
Date: 2010-02-12 14:30:55 -0500 (Fri, 12 Feb 2010)
New Revision: 31637
Modified:
labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/ResultTranslator.java
Log:
changed the way that a NativeQueryResults is translated to FlatQueryResults
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 19:28:00 UTC (rev 31636)
+++ 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 19:30:55 UTC (rev 31637)
@@ -3,7 +3,6 @@
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -12,13 +11,15 @@
import javax.xml.transform.TransformerException;
import org.drools.FactHandle;
-import org.drools.QueryResult;
-import org.drools.QueryResults;
+import org.drools.base.ClassObjectType;
+import org.drools.base.DroolsQuery;
import org.drools.common.DisconnectedFactHandle;
import org.drools.rule.Declaration;
import org.drools.runtime.impl.ExecutionResultImpl;
+import org.drools.runtime.rule.QueryResultsRow;
import org.drools.runtime.rule.impl.FlatQueryResults;
import org.drools.runtime.rule.impl.NativeQueryResults;
+import org.drools.spi.ObjectType;
import org.drools.xml.jaxb.util.JaxbListWrapper;
public class ResultTranslator {
@@ -30,32 +31,33 @@
if (obj instanceof NativeQueryResults) {
NativeQueryResults nativeQueryResults = (NativeQueryResults) obj;
- Declaration[] declrs = nativeQueryResults.getDeclarations().values().toArray( new Declaration[nativeQueryResults.getDeclarations().size()] );
- int length = declrs.length;
+ List<Declaration> declrs = new ArrayList<Declaration>();
+ HashMap<String, Integer> identifiers = new HashMap<String, Integer>( );
- HashMap<String, Integer> identifiers = new HashMap<String, Integer>( length );
- for ( int i = 0; i < length; i++ ) {
- identifiers.put( declrs[i].getIdentifier(), i );
+ for ( String identifier : nativeQueryResults.getIdentifiers() ) {
+ // we don't want to marshall the query parameters
+ Declaration declr = nativeQueryResults.getDeclarations().get( identifier );
+ ObjectType objectType = declr.getPattern().getObjectType();
+ if ( objectType instanceof ClassObjectType &&
+ ((ClassObjectType) objectType).getClassType() == DroolsQuery.class ) {
+ continue;
+ }
+ declrs.add(declr);
+ identifiers.put(identifier, declrs.size() - 1);
}
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();
- ArrayList<Object> objectList = new ArrayList<Object>();
- ArrayList<org.drools.runtime.rule.FactHandle> factHandleList = new ArrayList<org.drools.runtime.rule.FactHandle>();
- while (iterator.hasNext()) {
- QueryResult result = iterator.next();
- FactHandle[] handles = result.getFactHandles();
- for (int i=0; i < handles.length; i++) {
- DisconnectedFactHandle factHandle = (DisconnectedFactHandle) handles[i];
- objectList.add(factHandle.getObject());
- factHandleList.add(factHandle);
- }
+ for (QueryResultsRow row : nativeQueryResults) {
+ 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 < declrs.size(); i++) {
+ objectList.add(convert(row.get(declrs.get(i).getIdentifier())));
+ factHandleList.add(new DisconnectedFactHandle(row.getFactHandle(declrs.get(i).getIdentifier()).toExternalForm()));
+ }
+ factHandles.add(factHandleList);
+ results.add(objectList);
}
- factHandles.add(factHandleList);
- results.add(objectList);
return new FlatQueryResults(identifiers, results, factHandles);
}
More information about the jboss-svn-commits
mailing list