[jboss-svn-commits] JBL Code SVN: r31599 - in labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz: drools-core/src/main/java/org/drools/runtime/help/impl and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Feb 11 21:01:19 EST 2010


Author: lucazamador
Date: 2010-02-11 21:01:18 -0500 (Thu, 11 Feb 2010)
New Revision: 31599

Modified:
   labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/QueryResults.java
   labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/help/impl/BatchExecutionHelperProviderImpl.java
   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/NativeQueryResults.java
   labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/DroolsJaxbHelperProviderImpl.java
   labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/ResultTranslator.java
Log:
native query results converted to flat query resutls

Modified: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/QueryResults.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/QueryResults.java	2010-02-12 01:10:34 UTC (rev 31598)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/QueryResults.java	2010-02-12 02:01:18 UTC (rev 31599)
@@ -36,6 +36,9 @@
 
     protected List<FactHandle[]> results;
     protected WorkingMemory workingMemory;
+    
+    public QueryResults() {
+	}
 
     public QueryResults(final List<FactHandle[]> results,
                         final Query query,

Modified: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/help/impl/BatchExecutionHelperProviderImpl.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/help/impl/BatchExecutionHelperProviderImpl.java	2010-02-12 01:10:34 UTC (rev 31598)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/help/impl/BatchExecutionHelperProviderImpl.java	2010-02-12 02:01:18 UTC (rev 31599)
@@ -1011,18 +1011,18 @@
             }
             reader.moveUp();
 
-            Map<String, Integer> identifiers = new HashMap<String, Integer>();
+            HashMap<String, Integer> identifiers = new HashMap<String, Integer>();
             for ( int i = 0; i < list.size(); i++ ) {
                 identifiers.put( list.get( i ),
                                  i );
             }
 
-            List results = new ArrayList();      
-            List<List<FactHandle>> resultHandles = new ArrayList();
+            ArrayList<ArrayList<Object>> results = new ArrayList();      
+            ArrayList<ArrayList<FactHandle>> resultHandles = new ArrayList();
             while ( reader.hasMoreChildren() ) {
                 reader.moveDown();
-                List objects = new ArrayList();
-                List<FactHandle> handles = new ArrayList();
+                ArrayList objects = new ArrayList();
+                ArrayList<FactHandle> handles = new ArrayList();
                 while ( reader.hasMoreChildren() ) {
                     reader.moveDown();
                     Object object = readItem( reader,

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 01:10:34 UTC (rev 31598)
+++ 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)
@@ -6,21 +6,29 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+
 import org.drools.rule.Declaration;
 import org.drools.runtime.rule.FactHandle;
 import org.drools.runtime.rule.QueryResultsRow;
 import org.drools.runtime.rule.QueryResults;
 
+ at XmlAccessorType( XmlAccessType.FIELD )
 public class FlatQueryResults
     implements
     QueryResults {
-    private Map<String, Integer> identifiers;
-    private List<List<Object>>           results;
-    private List<List<FactHandle>> factHandles;
+    private HashMap<String, Integer> identifiers;
+    private ArrayList<ArrayList<Object>>           results;
+    private ArrayList<ArrayList<FactHandle>> factHandles;
+    
+    public FlatQueryResults() {
+    	
+	}
 
-    public FlatQueryResults(Map<String, Integer> identifiers,
-                            List<List<Object>> results,
-                            List<List<FactHandle>> factHandles) {
+    public FlatQueryResults(HashMap<String, Integer> identifiers,
+                            ArrayList<ArrayList<Object>> results,
+                            ArrayList<ArrayList<FactHandle>> factHandles) {
         this.identifiers = identifiers;
         this.results = results;
         this.factHandles = factHandles;
@@ -28,14 +36,14 @@
 
     public FlatQueryResults(org.drools.QueryResults results) {
         Declaration[] declrs = results.getDeclarations().values().toArray( new Declaration[results.getDeclarations().size()] );
-        this.results = new ArrayList<List<Object>>( results.size() );
-        this.factHandles = new ArrayList<List<FactHandle>> ( results.size() );
+        this.results = new ArrayList<ArrayList<Object>>( results.size() );
+        this.factHandles = new ArrayList<ArrayList<FactHandle>> ( results.size() );
 
         int length = declrs.length;
 
         for ( org.drools.QueryResult result : results ) {
-            List<Object> row = new ArrayList<Object>();
-            List<FactHandle> rowHandle = new ArrayList<FactHandle>();
+        	ArrayList<Object> row = new ArrayList<Object>();
+        	ArrayList<FactHandle> rowHandle = new ArrayList<FactHandle>();
 
             for ( int i = 0; i < length; i++ ) {
                 Declaration declr = declrs[i];
@@ -55,7 +63,7 @@
 
     }
 
-    public String[] getIdentifiers() {
+	public String[] getIdentifiers() {
         return identifiers.keySet().toArray( new String[identifiers.size()] );
     }
 
@@ -70,13 +78,13 @@
     }
 
     private class QueryResultsIterator implements Iterator<QueryResultsRow> {
-        private Map<String, Integer> identifiers;
-        private Iterator<List<Object>> iterator;
-        private Iterator<List<FactHandle>> handleIterator;
+        private HashMap<String, Integer> identifiers;
+        private Iterator<ArrayList<Object>> iterator;
+        private Iterator<ArrayList<FactHandle>> handleIterator;
 
-        public QueryResultsIterator(Map<String, Integer> identifiers,
-                                    final Iterator<List<Object>> iterator,
-                                    final Iterator<List<FactHandle>> handleIterator) {
+        public QueryResultsIterator(HashMap<String, Integer> identifiers,
+                                    final Iterator<ArrayList<Object>> iterator,
+                                    final Iterator<ArrayList<FactHandle>> handleIterator) {
             this.identifiers = identifiers;
             this.iterator = iterator;
             this.handleIterator = handleIterator;

Modified: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/rule/impl/NativeQueryResults.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/rule/impl/NativeQueryResults.java	2010-02-12 01:10:34 UTC (rev 31598)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/rule/impl/NativeQueryResults.java	2010-02-12 02:01:18 UTC (rev 31599)
@@ -16,26 +16,33 @@
     QueryResults {
     
     private org.drools.QueryResults results;
+    
+    public NativeQueryResults() {
+	}
 
     public NativeQueryResults(org.drools.QueryResults results) {
         this.results = results;
     }
 
-    public String[] getIdentifiers() {
-        return this.results.getDeclarations().keySet().toArray( new String[this.results.getDeclarations().size()] );
+	public org.drools.QueryResults getResults() {
+		return results;
+	}
+
+	public String[] getIdentifiers() {
+        return this.getResults().getDeclarations().keySet().toArray( new String[this.getResults().getDeclarations().size()] );
     }
     
     
     public Map<String, Declaration> getDeclarations() {
-        return this.results.getDeclarations();
+        return this.getResults().getDeclarations();
     }
 
     public int size() {
-        return this.results.size();
+        return this.getResults().size();
     }
     
     public Iterator<QueryResultsRow> iterator() {
-        return new QueryResultsIterator( this.results.iterator() );
+        return new QueryResultsIterator( this.getResults().iterator() );
     }
 
     private class QueryResultsIterator

Modified: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/DroolsJaxbHelperProviderImpl.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/DroolsJaxbHelperProviderImpl.java	2010-02-12 01:10:34 UTC (rev 31598)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-pipeline/drools-transformer-jaxb/src/main/java/org/drools/runtime/pipeline/impl/DroolsJaxbHelperProviderImpl.java	2010-02-12 02:01:18 UTC (rev 31599)
@@ -38,6 +38,20 @@
 import org.drools.builder.KnowledgeBuilder;
 import org.drools.builder.help.DroolsJaxbHelperProvider;
 import org.drools.builder.impl.KnowledgeBuilderImpl;
+import org.drools.command.runtime.BatchExecutionCommand;
+import org.drools.command.runtime.GetGlobalCommand;
+import org.drools.command.runtime.SetGlobalCommand;
+import org.drools.command.runtime.process.AbortWorkItemCommand;
+import org.drools.command.runtime.process.SignalEventCommand;
+import org.drools.command.runtime.process.StartProcessCommand;
+import org.drools.command.runtime.rule.FireAllRulesCommand;
+import org.drools.command.runtime.rule.InsertElementsCommand;
+import org.drools.command.runtime.rule.InsertObjectCommand;
+import org.drools.command.runtime.rule.ModifyCommand;
+import org.drools.command.runtime.rule.QueryCommand;
+import org.drools.command.runtime.rule.RetractCommand;
+import org.drools.command.runtime.rule.ModifyCommand.SetterImpl;
+import org.drools.common.DefaultFactHandle;
 import org.drools.common.DisconnectedFactHandle;
 import org.drools.common.InternalRuleBase;
 import org.drools.compiler.PackageBuilder;
@@ -46,6 +60,10 @@
 import org.drools.io.Resource;
 import org.drools.lang.descr.PackageDescr;
 import org.drools.rule.builder.dialect.java.JavaDialect;
+import org.drools.runtime.impl.BatchExecutionImpl;
+import org.drools.runtime.impl.ExecutionResultImpl;
+import org.drools.runtime.rule.impl.FlatQueryResults;
+import org.drools.runtime.rule.impl.NativeQueryResults;
 import org.drools.xml.jaxb.util.JaxbListWrapper;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXParseException;
@@ -64,24 +82,26 @@
     implements
     DroolsJaxbHelperProvider {
 	
-	private static final String[] JAXB_ANNOTATED_CMD = {"org.drools.command.runtime.BatchExecutionCommand",
-														"org.drools.command.runtime.SetGlobalCommand",
-														"org.drools.command.runtime.GetGlobalCommand",
-														"org.drools.command.runtime.rule.FireAllRulesCommand",
-														"org.drools.command.runtime.rule.InsertElementsCommand",
-														"org.drools.command.runtime.rule.InsertObjectCommand",
-														"org.drools.command.runtime.rule.ModifyCommand",
-														"org.drools.command.runtime.rule.ModifyCommand$SetterImpl",
-														"org.drools.command.runtime.rule.QueryCommand",
-														"org.drools.command.runtime.rule.RetractCommand",
-														"org.drools.command.runtime.process.AbortWorkItemCommand",
-														"org.drools.command.runtime.process.SignalEventCommand",
-														"org.drools.command.runtime.process.StartProcessCommand",
-														"org.drools.runtime.impl.BatchExecutionImpl",
-														"org.drools.runtime.impl.ExecutionResultImpl",
-														"org.drools.common.DefaultFactHandle",
+	private static final String[] JAXB_ANNOTATED_CMD = {BatchExecutionCommand.class.getName(),
+														SetGlobalCommand.class.getName(),
+														GetGlobalCommand.class.getName(),
+														FireAllRulesCommand.class.getName(),
+														InsertElementsCommand.class.getName(),
+														InsertObjectCommand.class.getName(),
+														ModifyCommand.class.getName(),
+														SetterImpl.class.getName(),
+														QueryCommand.class.getName(),
+														RetractCommand.class.getName(),
+														AbortWorkItemCommand.class.getName(),
+														SignalEventCommand.class.getName(),
+														StartProcessCommand.class.getName(),
+														BatchExecutionImpl.class.getName(),
+														ExecutionResultImpl.class.getName() ,
+														DefaultFactHandle.class.getName(),
 														JaxbListWrapper.class.getName(),
 														DisconnectedFactHandle.class.getName(),
+														NativeQueryResults.class.getName(),
+														FlatQueryResults.class.getName()
 														};
 	
     public String[] addXsdModel(Resource resource,

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 01:10:34 UTC (rev 31598)
+++ 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)
@@ -11,22 +11,22 @@
 import org.drools.FactHandle;
 import org.drools.common.DisconnectedFactHandle;
 import org.drools.runtime.impl.ExecutionResultImpl;
+import org.drools.runtime.rule.impl.FlatQueryResults;
+import org.drools.runtime.rule.impl.NativeQueryResults;
 import org.drools.xml.jaxb.util.JaxbListWrapper;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
 public class ResultTranslator {
 
-//	private DocumentBuilder documentBuilder;
-//	private Transformer transformer;
-
-	public ResultTranslator() {}
-
 	private Object convert(Object obj) {
 		if (obj instanceof FactHandle && !(obj instanceof DisconnectedFactHandle)) {
 			return new DisconnectedFactHandle(((FactHandle) obj).toExternalForm());
 		}
 		
+		if (obj instanceof NativeQueryResults) {
+			NativeQueryResults nativeQueryResults = (NativeQueryResults)obj;
+			return new FlatQueryResults(nativeQueryResults.getResults());
+		}
+		
 		Class<? extends Object> vClass = obj.getClass();
 		if (List.class.isAssignableFrom(vClass) && !JaxbListWrapper.class.equals(vClass)) {
 			JaxbListWrapper<Object> wrapper = new JaxbListWrapper<Object>(((List<?>) obj).size());
@@ -35,13 +35,11 @@
 			}
 			return wrapper;
 		}
-		
 		return obj;
 	}
 	
 	public String transform( ExecutionResultImpl executionResult, Marshaller marshaller ) throws JAXBException, TransformerException{
 
-//		Document document = documentBuilder.newDocument();
 		//TODO {bauna} remove this try
 		try {
 			StringWriter writer = new StringWriter();
@@ -58,125 +56,6 @@
 			e.printStackTrace();
 			throw new RuntimeException(e);
 		}
-//		
-//		Element results = document.createElement("results");
-//		Map<String, Object> executionResults = executionResult.getResults();
-//		for (String key : executionResults.keySet()) {
-//			Object object = executionResults.get(key);
-//			if (object==null) {
-//				executionResults.remove(key);
-//				continue;
-//			}
-//			Element result = null;
-//			if (object instanceof ArrayList<?>) {
-//				result = makeObjects(marshaller, document, (List<Object>) object);
-//			}
-//			else {
-//				result = makeObject(marshaller, document, object);
-//			}
-//			result.setAttribute("identifier", key);
-//			results.appendChild(result);
-//		}
-//		addElements(results, document, executionResults.size());
-//
-//		results = document.createElement("fact-handles");
-//		Map<String, Object> factHandlesResult = executionResult.getFactHandles();
-//		for (String key : factHandlesResult.keySet()) {
-//			Object object = factHandlesResult.get(key);
-//			Element factHandles = document.createElement("nil");
-//			Element result = null;
-//			if (object instanceof ArrayList<?>) {
-//				result = makeObjects(marshaller, document, (List<Object>) object);
-//			}
-//			else {
-//				result = makeObject(marshaller, document, object);
-//			}
-//			Node factHandle = factHandles.getFirstChild();
-//			results.appendChild(result);
-//			Node identifierAttribute = document.createAttribute("identifier");
-//			identifierAttribute.setNodeValue(key);
-//			result.getAttributes().setNamedItem(identifierAttribute);
-//		}
-//		addElements(results, document, factHandlesResult.size());
-//
-//		return convertDocumentToString(document);
 	}
 	
-	private Element makeObjects(Marshaller marshaller, Document document, List<Object> objects) throws JAXBException {
-		Element result = document.createElement("result");
-		for (Object object : objects) {
-			Element element = document.createElement("element");
-			marshaller.marshal(object, element);
-			result.appendChild(element.getFirstChild());
-		}
-		return result;
-	}
-	
-	private Element makeObject(Marshaller marshaller, Document document, Object object) throws JAXBException {
-		Element result = document.createElement("result");
-		marshaller.marshal(object, result);
-		return result;
-	}
-	
-//	public String transform( ExecutionResultImpl executionResult, Marshaller marshaller ) throws JAXBException, TransformerException{
-//
-//		Document document = documentBuilder.newDocument();
-//		marshaller.marshal(executionResult, document);
-//
-//		Element results = document.createElement("results");
-//		Map<String, Object> executionResults = executionResult.getResults();
-//		for (String key : executionResults.keySet()) {
-//			Object object = executionResults.get(key);
-//			if (object==null) {
-//				executionResults.remove(key);
-//				continue;
-//			}
-//			Element result = document.createElement("result");
-//			// TODO: remove try/catch
-//			try {
-//				marshaller.marshal(object, result);
-//			} catch (Exception e) {
-//				e.printStackTrace();
-//			}
-//			result.setAttribute("identifier", key);
-//			results.appendChild(result);
-//		}
-//		addElements(results, document, executionResults.size());
-//
-//		results = document.createElement("fact-handles");
-//		Map<String, Object> factHandlesResult = executionResult.getFactHandles();
-//		for (String key : factHandlesResult.keySet()) {
-//			Object object = factHandlesResult.get(key);
-//			Element factHandles = document.createElement("nil");
-//			marshaller.marshal(object, factHandles);
-//			Node factHandle = factHandles.getFirstChild();
-//			results.appendChild(factHandle);
-//			Node identifierAttribute = document.createAttribute("identifier");
-//			identifierAttribute.setNodeValue(key);
-//			factHandle.getAttributes().setNamedItem(identifierAttribute);
-//		}
-//		addElements(results, document, factHandlesResult.size());
-//
-//		return convertDocumentToString(document);
-//	}
-	
-	private void addElements(Element results, Document document, int size) {
-		switch (size) {
-		case 0:
-			return; 
-		case 1:
-			document.getDocumentElement().appendChild(results.getFirstChild()); 
-			break;
-		default:
-			document.getDocumentElement().appendChild(results); 
-			break;
-		}
-	}
-
-//	private String convertDocumentToString(Document document) throws TransformerException {
-//		StreamResult streamResult = new StreamResult(new StringWriter());
-//		transformer.transform(new DOMSource(document), streamResult);
-//		return streamResult.getWriter().toString();
-//	}
-
 }



More information about the jboss-svn-commits mailing list