[jboss-svn-commits] JBL Code SVN: r33360 - in labs/jbossrules/trunk: drools-compiler/src/test/java/org/drools/integrationtests and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Jun 5 00:39:41 EDT 2010


Author: mark.proctor at jboss.com
Date: 2010-06-05 00:39:40 -0400 (Sat, 05 Jun 2010)
New Revision: 33360

Modified:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/Row.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/QueryTest.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/FlatQueryResultRow.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/FlatQueryResults.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/NativeQueryResultRow.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/NativeQueryResults.java
Log:
JBRULES-2514 Open Live Querries
-removed int accessors, only identifiers.


Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/Row.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/Row.java	2010-06-05 04:26:28 UTC (rev 33359)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/rule/Row.java	2010-06-05 04:39:40 UTC (rev 33360)
@@ -8,34 +8,13 @@
      * @return
      */
     public Object get(String identifier);
+      
     
     /**
-     * Return the Object for the specified position
-     * 
-     * @param i
-     * @return
-     */
-    public Object get(final int i);    
-    
-    /**
      * Return the FactHandle associated with the given identifier
      * @param identifier
      * @return
      */
     public FactHandle getFactHandle(String identifier);
 
-    /**
-     * Return the FactHandle for the specified position
-     * 
-     * @param i
-     * @return
-     */
-    public FactHandle getFactHandle(final int i);  
-    
-    /**
-     * Number of objects in the row
-     * 
-     * @return
-     */
-    public int size();
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/QueryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/QueryTest.java	2010-06-05 04:26:28 UTC (rev 33359)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/QueryTest.java	2010-06-05 04:39:40 UTC (rev 33360)
@@ -102,7 +102,25 @@
         assertEquals( new InsertedObject( "value1" ),
                       results.get( 0 ).get( 0 ) );
     }
+    
+    public void testQuery2KnowledgeBuilder() throws Exception {
+        final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newClassPathResource( "test_Query.drl", getClass() ), ResourceType.DRL );
 
+        KnowledgeBase kbase = kbuilder.newKnowledgeBase();
+        kbase.addKnowledgePackages( kbase.getKnowledgePackages() );
+        kbase = SerializationHelper.serializeObject( kbase );
+
+        final StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+        ksession.fireAllRules();
+
+        final org.drools.runtime.rule.QueryResults results = ksession.getQueryResults( "assertedobjquery" );
+        assertEquals( 1,
+                      results.size() );
+        assertEquals( new InsertedObject( "value1" ),
+                      results.iterator().next().get( "assertedobj" ) );
+    }    
+
     public void testQueryWithParams() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_QueryWithParams.drl" ) ) );

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/FlatQueryResultRow.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/FlatQueryResultRow.java	2010-06-05 04:26:28 UTC (rev 33359)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/FlatQueryResultRow.java	2010-06-05 04:39:40 UTC (rev 33360)
@@ -9,12 +9,13 @@
 public class FlatQueryResultRow
     implements
     QueryResultsRow {
-    Map<String, Integer> identifiers;
-    private List result;
+    Map<String, Integer>     identifiers;
+    private List             result;
     private List<FactHandle> factHandles;
-    private int size;
 
-    public FlatQueryResultRow(Map<String, Integer> identifiers, List result, List<FactHandle> factHandles, int size) {
+    public FlatQueryResultRow(Map<String, Integer> identifiers,
+                              List result,
+                              List<FactHandle> factHandles) {
         this.identifiers = identifiers;
         this.result = result;
         this.factHandles = factHandles;
@@ -24,23 +25,8 @@
         return this.result.get( identifiers.get( identifier ) );
     }
 
-    public Object get(int i) {
-        return this.result.get( i );
-    }
-    
-
     public FactHandle getFactHandle(String identifier) {
         return this.factHandles.get( identifiers.get( identifier ) );
-    }    
-
-    public FactHandle getFactHandle(int i) {
-        return this.factHandles.get( i );
     }
 
-    public int size() {
-        return this.size;
-    }
-
-    
-
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/FlatQueryResults.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/FlatQueryResults.java	2010-06-05 04:26:28 UTC (rev 33359)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/FlatQueryResults.java	2010-06-05 04:39:40 UTC (rev 33360)
@@ -3,6 +3,7 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.Map;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
@@ -19,7 +20,7 @@
 public class FlatQueryResults
     implements
     QueryResults {
-    private HashMap<String, Integer> identifiers;
+    private Map<String, Integer> identifiers;
     @XmlJavaTypeAdapter(JaxbFlatQueryResultsAdapter.class)
 	@XmlElement(name="results")
     private ArrayList<ArrayList<Object>>           results;
@@ -31,7 +32,7 @@
     	
 	}
 
-    public FlatQueryResults(HashMap<String, Integer> identifiers,
+    public FlatQueryResults(Map<String, Integer> identifiers,
                             ArrayList<ArrayList<Object>> results,
                             ArrayList<ArrayList<FactHandle>> factHandles) {
         this.identifiers = identifiers;
@@ -45,6 +46,14 @@
         this.factHandles = new ArrayList<ArrayList<FactHandle>> ( results.size() );
 
         int length = declrs.length;
+        
+        identifiers = new HashMap<String, Integer>( length );
+        for ( int i = 0; i < length; i++ ) {
+            identifiers.put( declrs[i].getIdentifier(),
+                             i );
+        }
+        
+        
 
         for ( org.drools.QueryResult result : results ) {
         	ArrayList<Object> row = new ArrayList<Object>();
@@ -60,12 +69,8 @@
             this.factHandles.add( rowHandle );
         }
 
-        identifiers = new HashMap<String, Integer>( length );
-        for ( int i = 0; i < length; i++ ) {
-            identifiers.put( declrs[i].getIdentifier(),
-                             i );
-        }
 
+
     }
 
 	public String[] getIdentifiers() {
@@ -83,11 +88,11 @@
     }
 
     private class QueryResultsIterator implements Iterator<QueryResultsRow> {
-        private HashMap<String, Integer> identifiers;
+        private Map<String, Integer> identifiers;
         private Iterator<ArrayList<Object>> iterator;
         private Iterator<ArrayList<FactHandle>> handleIterator;
 
-        public QueryResultsIterator(HashMap<String, Integer> identifiers,
+        public QueryResultsIterator(Map<String, Integer> identifiers,
                                     final Iterator<ArrayList<Object>> iterator,
                                     final Iterator<ArrayList<FactHandle>> handleIterator) {
             this.identifiers = identifiers;
@@ -102,8 +107,7 @@
         public QueryResultsRow next() {
             return new FlatQueryResultRow( identifiers,
                                            this.iterator.next(),
-                                           this.handleIterator.next(),
-                                           size() );
+                                           this.handleIterator.next() );
         }
 
         public void remove() {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/NativeQueryResultRow.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/NativeQueryResultRow.java	2010-06-05 04:26:28 UTC (rev 33359)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/NativeQueryResultRow.java	2010-06-05 04:39:40 UTC (rev 33360)
@@ -15,21 +15,9 @@
     public Object get(String identifier) {
         return this.result.get( identifier );
     }    
-
-    public Object get(int i) {
-        return this.result.get( i );
-    }
     
     public FactHandle getFactHandle(String identifier) {
         return this.result.getFactHandle( identifier );
     }    
 
-    public FactHandle getFactHandle(int i) {
-        return this.result.getFactHandle( i );
-    }
-
-    public int size() {
-        return result.size();
-    }
-
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/NativeQueryResults.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/NativeQueryResults.java	2010-06-05 04:26:28 UTC (rev 33359)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/runtime/rule/impl/NativeQueryResults.java	2010-06-05 04:39:40 UTC (rev 33360)
@@ -1,14 +1,19 @@
 package org.drools.runtime.rule.impl;
 
+import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 
+import org.drools.base.ClassObjectType;
+import org.drools.base.DroolsQuery;
 import org.drools.rule.Declaration;
 import org.drools.runtime.rule.QueryResults;
 import org.drools.runtime.rule.QueryResultsRow;
+import org.drools.spi.ObjectType;
 
 @XmlAccessorType( XmlAccessType.FIELD )
 public class NativeQueryResults
@@ -29,7 +34,17 @@
 	}
 
 	public String[] getIdentifiers() {
-        return getDeclarations().keySet().toArray( new String[this.getResults().getDeclarations().size()] );
+	    List<String> actualIds = new ArrayList();
+	    for ( Declaration declr : results.getDeclarations().values() ) {
+	           ObjectType objectType = declr.getPattern().getObjectType();
+	            if ( objectType instanceof ClassObjectType ) {
+	                if ( ((ClassObjectType) objectType).getClassType() == DroolsQuery.class ) {
+	                    continue;
+	                }
+	            }	    
+	            actualIds.add( declr.getIdentifier() );
+	    }
+	    return actualIds.toArray( new String[actualIds.size() ] );
     }
     
     



More information about the jboss-svn-commits mailing list