Package org.drools.runtime.rule

Examples of org.drools.runtime.rule.QueryResults


        StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
        List<String> list = new ArrayList<String>();
        ksession.setGlobal( "list",
                            list );

        QueryResults results = null;

        Person p = new Person();
        p.setLikes( "lamp" );
        FactHandle handle = ksession.insert( p );
        ksession = getSerialisedStatefulKnowledgeSession( ksession,
View Full Code Here


            List<String> list = new ArrayList<String>();
            ksession.setGlobal("list", list);
            ksession.insert("Some String");
            ksession.insert("Some Other String");
   
            QueryResults queryResults = ksession.getQueryResults("all the Strings");
   
            assertEquals(2, queryResults.size());
   
            Iterator<QueryResultsRow> iterator = queryResults.iterator();
            while (iterator.hasNext()){
                System.out.println("Row= "+iterator.next().get("$strings"));
            }
   
            //we are going to modify the query definition
            String query1V2 = "";
            query1V2 += "query \"all the Strings\"\n";
            query1V2 += "     $strings : String(this == \"Some String\")\n";
            query1V2 += "end\n";
           
            fileManager.write("rule1.drl", this.createDefaultRule("rule1") + " \n " + query1V2 );
           
            this.scan(kagent);
   
            queryResults = ksession.getQueryResults("all the Strings");
   
   
            assertEquals(1, queryResults.size());
            assertEquals("Some String",queryResults.iterator().next().get("$strings"));
   
            ksession.dispose();
            kagent.dispose();
        }
View Full Code Here

        ksession.setGlobal( "list",
                            list );

        ksession.fireAllRules();

        QueryResults results = null;

        list.clear();
        results = ksession.getQueryResults( "p",
                                            new Integer[]{0} );
        for ( QueryResultsRow result : results ) {
View Full Code Here

                                     "jill" ) );

        ksession = getSerialisedStatefulKnowledgeSession( ksession,
                                                          true );

        QueryResults results = null;

        //System.out.println("woman");        
        list.clear();
        results = ksession.getQueryResults( "woman",
                                            new Object[]{v} );
View Full Code Here

        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        ksession.setGlobal( "list",
                            list );

        QueryResults results = null;
        ksession.fireAllRules();

        ksession.insert( "go1" );
        ksession = getSerialisedStatefulKnowledgeSession( ksession,
                                                          true );
        ksession.fireAllRules();

        Map<String, Object> map = (Map) list.get( 0 );
        assertEquals( "kitchen",
                      map.get( "place" ) );
        List<String> items = (List<String>) map.get( "things" );
        assertEquals( 3,
                      items.size() );
        assertContains( new String[]{"apple", "broccoli", "crackers"},
                        items );

        items = (List<String>) map.get( "food" );
        assertEquals( 2,
                      items.size() );
        assertContains( new String[]{"apple", "crackers"},
                        items );

        items = (List<String>) map.get( "exits" );
        assertEquals( 3,
                      items.size() );
        assertContains( new String[]{"office", "cellar", "dining room"},
                        items );

        ksession.insert( "go2" );
        ksession = getSerialisedStatefulKnowledgeSession( ksession,
                                                          true );
        ksession.fireAllRules();

        map = (Map) list.get( 1 );
        assertEquals( "office",
                      map.get( "place" ) );
        items = (List<String>) map.get( "things" );
        assertEquals( 2,
                      items.size() );
        assertContains( new String[]{"computer", "desk",},
                        items );

        items = (List<String>) map.get( "food" );
        assertEquals( 1,
                      items.size() );
        assertContains( new String[]{"apple"},
                        items ); // notice the apple is on the desk in the office       

        items = (List<String>) map.get( "exits" );
        assertEquals( 2,
                      items.size() );
        assertContains( new String[]{"hall", "kitchen"},
                        items );

        results = ksession.getQueryResults( "isContainedIn",
                                            new Object[]{"key", "office"} );
        assertEquals( 1,
                      results.size() );
        QueryResultsRow result = results.iterator().next();
        assertEquals( "key",
                      result.get( "x" ) );
        assertEquals( "office",
                      result.get( "y" ) );

        results = ksession.getQueryResults( "isContainedIn",
                                            new Object[]{"key", Variable.v} );
        List<List<String>> l = new ArrayList<List<String>>();
        for ( QueryResultsRow r : results ) {
            l.add( Arrays.asList( new String[]{(String) r.get( "x" ), (String) r.get( "y" )} ) );
        }
        assertEquals( 3,
                      results.size() );
        assertContains( Arrays.asList( new String[]{"key", "desk"} ),
                        l );
        assertContains( Arrays.asList( new String[]{"key", "office"} ),
                        l );
        assertContains( Arrays.asList( new String[]{"key", "envelope"} ),
                        l );

        results = ksession.getQueryResults( "isContainedIn",
                                            new Object[]{Variable.v, "office"} );
        l = new ArrayList<List<String>>();
        for ( QueryResultsRow r : results ) {
            l.add( Arrays.asList( new String[]{(String) r.get( "x" ), (String) r.get( "y" )} ) );
        }

        assertEquals( 6,
                      results.size() );
        assertContains( Arrays.asList( new String[]{"desk", "office"} ),
                        l );
        assertContains( Arrays.asList( new String[]{"computer", "office"} ),
                        l );
        assertContains( Arrays.asList( new String[]{"apple", "office"} ),
                        l );
        assertContains( Arrays.asList( new String[]{"envelope", "office"} ),
                        l );
        assertContains( Arrays.asList( new String[]{"flashlight", "office"} ),
                        l );
        assertContains( Arrays.asList( new String[]{"key", "office"} ),
                        l );

        results = ksession.getQueryResults( "isContainedIn",
                                            new Object[]{Variable.v, Variable.v} );
        l = new ArrayList<List<String>>();
        for ( QueryResultsRow r : results ) {
            l.add( Arrays.asList( new String[]{(String) r.get( "x" ), (String) r.get( "y" )} ) );
        }
        assertEquals( 17,
                      results.size() );
        assertContains( Arrays.asList( new String[]{"apple", "kitchen"} ),
                        l );
        assertContains( Arrays.asList( new String[]{"apple", "desk"} ),
                        l );
        assertContains( Arrays.asList( new String[]{"envelope", "desk"} ),
View Full Code Here

        ksession.fireAllRules();

        final List food = new ArrayList();

        QueryResults results = null;

        // Execute normal query and check no subnetwork tuples are left behind
        results = ksession.getQueryResults( "look",
                                            new Object[]{"kitchen", Variable.v} );
        assertEquals( 1,
                      results.size() );

        for ( org.drools.runtime.rule.QueryResultsRow row : results ) {
            food.addAll( (Collection) row.get( "food" ) );
            System.out.println( row.get( "food" ) );
        }
        assertEquals( 2,
                      food.size() );
        assertContains( new String[]{"crackers", "apple"},
                        food );

        assertEquals( 0,
                      accMemory.betaMemory.getRightTupleMemory().size() );
        assertEquals( 0,
                      existsMemory.getRightTupleMemory().size() );
        assertEquals( 0,
                      fromMemory.betaMemory.getLeftTupleMemory().size() );
        assertEquals( 0,
                      notMemory.getRightTupleMemory().size() );

        // Now execute an open query and ensure the memory is left populated
        food.clear();
        final List foodUpdated = new ArrayList();
        LiveQuery query = ksession.openLiveQuery( "look",
                                                  new Object[]{"kitchen", Variable.v},
                                                  new ViewChangedEventListener() {

                                                      public void rowUpdated(Row row) {
                                                          foodUpdated.addAll( (Collection) row.get( "food" ) );
                                                      }

                                                      public void rowRemoved(Row row) {
                                                      }

                                                      public void rowAdded(Row row) {
                                                          food.addAll( (Collection) row.get( "food" ) );
                                                      }
                                                  } );
        assertEquals( 2,
                      food.size() );
        assertContains( new String[]{"crackers", "apple"},
                        food );

        assertEquals( 2,
                      accMemory.betaMemory.getRightTupleMemory().size() );
        assertEquals( 2,
                      existsMemory.getRightTupleMemory().size() );
        assertEquals( 2,
                      fromMemory.betaMemory.getLeftTupleMemory().size() );
        assertEquals( 0,
                      notMemory.getRightTupleMemory().size() );

        food.clear();
        // Now try again, make sure it only delete's it's own tuples
        results = ksession.getQueryResults( "look",
                                            new Object[]{"kitchen", Variable.v} );
        assertEquals( 1,
                      results.size() );

        for ( org.drools.runtime.rule.QueryResultsRow row : results ) {
            food.addAll( (Collection) row.get( "food" ) );
            System.out.println( row.get( "food" ) );
        }
View Full Code Here

        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
        List<String> list = new ArrayList<String>();
        ksession.setGlobal( "list",
                            list );

        QueryResults results = null;

        Person p = new Person();
        p.setLikes( "lamp" );
        FactHandle handle = ksession.insert( p );
        ksession = getSerialisedStatefulKnowledgeSession( ksession,
View Full Code Here

        List<String> list = new ArrayList<String>();
        ksession.setGlobal("list", list);
        ksession.insert("Some String");
        ksession.insert("Some Other String");

        QueryResults queryResults = ksession.getQueryResults("all the Strings");

        ksession.dispose();


        assertEquals(2, queryResults.size());

        Iterator<QueryResultsRow> iterator = queryResults.iterator();
        while (iterator.hasNext()){
            System.out.println("Row= "+iterator.next().get("$strings"));
        }

        //we are going to modify the query definition
        // have to sleep here as linux lastModified does not do milliseconds
        // http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=1&t=019789
        Thread.sleep(2000);

        //we are going to add function1 now
        String query1V2 = "";
        query1V2 += "query \"all the Strings\"\n";
        query1V2 += "     $strings : String(this == \"Some String\")\n";
        query1V2 += "end\n";

        output = new BufferedWriter(new FileWriter(f1));
        output.write(header);
        output.write(query1V2);
        output.write(rule1);
        output.close();
        Thread.sleep(3000);

        ksession = kbase.newStatefulKnowledgeSession();
        list = new ArrayList<String>();
        ksession.setGlobal("list", list);
        ksession.insert("Some String");
        ksession.insert("Some Other String");

        queryResults = ksession.getQueryResults("all the Strings");

        ksession.dispose();


        assertEquals(1, queryResults.size());
        assertEquals("Some String",queryResults.iterator().next().get("$strings"));

        kagent.monitorResourceChangeEvents(false);
    }
View Full Code Here

        Assert.assertEquals(true, ((DefaultFactHandle)handle).isDisconnected());
       
        Object result = ksession.getObject(handle);
       
        Assert.assertEquals(obj1,  result);
        QueryResults queryResults = ksession.getQueryResults("getMyObjects", new Object[]{});
       
        String[] identifiers = queryResults.getIdentifiers();
        Assert.assertEquals(1,  identifiers.length);
        Assert.assertEquals(1,  queryResults.size());
        for(QueryResultsRow row : queryResults){
            Object o = row.get(identifiers[0]);
            System.out.println("Object from the query = "+o);
            Assert.assertNotNull(o);
            handle = row.getFactHandle(identifiers[0]);
View Full Code Here

    }

    public QueryResults execute(Context context) {
        StatefulKnowledgeSession ksession = ((KnowledgeCommandContext) context).getStatefulKnowledgesession();
       
        QueryResults results = null;
       
        if ( arguments == null || arguments.length == 0 ) {
            results = ksession.getQueryResults( name );
        } else {
            results = ksession.getQueryResults( name, this.arguments );
View Full Code Here

TOP

Related Classes of org.drools.runtime.rule.QueryResults

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.