[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