Package org.kie.api.runtime.rule

Examples of org.kie.api.runtime.rule.QueryResults


            if (arguments.get(j) instanceof Variable) {
                arguments.set(j, Variable.v);
            }
        }

        QueryResults results = ksession.getQueryResults( name, this.arguments.toArray() );
       
        if ( this.outIdentifier != null ) {
            if(((StatefulKnowledgeSessionImpl)ksession).getExecutionResult() != null){
                ((StatefulKnowledgeSessionImpl)ksession).getExecutionResult().getResults().put( this.outIdentifier, results );
            }   
View Full Code Here


        entryPoint.insert(new TestEvent("one"));
        clock.advanceTime( 10, TimeUnit.SECONDS );
        entryPoint.insert(new TestEvent("two"));
        clock.advanceTime( 10, TimeUnit.SECONDS );
        entryPoint.insert(new TestEvent("three"));
        QueryResults results = ksession.getQueryResults("EventsBeforeNineSeconds");
        assertEquals(1, results.size());

        ksession.dispose();
    }
View Full Code Here

        clock.advanceTime( 10, TimeUnit.SECONDS );

        entryPoint.insert(new StockTick(3L, "three", 0.0, 0));

        QueryResults results = ksession.getQueryResults("EventsBeforeNineSeconds");

        assertEquals( 1, results.size());

        results = ksession.getQueryResults("EventsBeforeNineteenSeconds");

        assertEquals( 2, results.size() );

        results = ksession.getQueryResults("EventsBeforeHundredSeconds");

        assertEquals( 3, results.size() );

        ksession.dispose();
    }
View Full Code Here

        StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);

        kbase.addKnowledgePackages(loadKnowledgePackagesFromString(rule) );
        ksession.fireAllRules();

        QueryResults res = ksession.getQueryResults( "getResults", "1", Variable.v );
        assertEquals( 1, res.size() );

        Object o = res.iterator().next().get( "$holders" );
        assertTrue( o instanceof List );
        assertEquals( 1, ((List) o).size() );
    }
View Full Code Here

        entryPoint.insert(new TestEvent("one"));
        clock.advanceTime( 10, TimeUnit.SECONDS );
        entryPoint.insert(new TestEvent("two"));
        clock.advanceTime( 10, TimeUnit.SECONDS );
        entryPoint.insert(new TestEvent("three"));
        QueryResults results = ksession.getQueryResults("EventsBeforeNineSeconds");
        assertEquals(1, results.size());

        ksession.dispose();
    }
View Full Code Here

                                         o2 );
            } else if ( doRetract ) {
                knowledgeSession.retract( handle2 );
                handle2 = knowledgeSession.insert( o2 );
            }
            QueryResults queryResults = knowledgeSession.getQueryResults( query );
            assertEquals( expected,
                          queryResults.size() );
        } finally {
            knowledgeSession.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 = SerializationHelper.getSerialisedStatefulKnowledgeSession(ksession,
                true);

        QueryResults results = null;

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

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

        QueryResults results = null;
        ksession.fireAllRules();

        ksession.insert( "go1" );
        ksession = SerializationHelper.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 = SerializationHelper.getSerialisedStatefulKnowledgeSession(ksession,
                true,
                false);
        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.kie.api.runtime.rule.QueryResultsRow row : results ) {
            food.addAll( (Collection) row.get( "food" ) );
            logger.debug( row.get( "food" ).toString() );
        }
        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 rowDeleted(Row row) {
                                                      }

                                                      public void rowInserted(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.kie.api.runtime.rule.QueryResultsRow row : results ) {
            food.addAll( (Collection) row.get( "food" ) );
            logger.debug( row.get( "food" ).toString() );
        }
View Full Code Here

TOP

Related Classes of org.kie.api.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.