public static Object getObject(KieSession ksession, FactHandle handle) { if (handle == null) { return null; } else { return ksession.getObject(handle); } }
public static Object getObject(KieSession ksession, FactHandle handle) { if (handle == null) { return null; } else { return ksession.getObject(handle); } }
@Override public Object getObject( FactHandle factHandle ) { return kieSession.getObject( factHandle ); }
@Override public Object getObject( FactHandle factHandle ) { return kieSession.getObject( factHandle ); }
public Object getObject(FactHandle factHandle) { return kieSession.getObject(factHandle); }
@Test public void testDisconnectedFactHandle() { final KieBase kbase = getKnowledgeBase(); final KieSession ksession = createKnowledgeSession( kbase ); final DefaultFactHandle helloHandle = (DefaultFactHandle) ksession.insert( "hello" ); final DefaultFactHandle goodbyeHandle = (DefaultFactHandle) ksession.insert( "goodbye" ); FactHandle key = DefaultFactHandle.createFromExternalFormat( helloHandle.toExternalForm() ); assertEquals( "hello", ksession.getObject( key ) ); key = DefaultFactHandle.createFromExternalFormat( goodbyeHandle.toExternalForm() ); assertEquals( "goodbye", ksession.getObject( key ) ); }
@Test public void testGetStatefulKnowledgeSessions() throws Exception { final KieBase kbase = SerializationHelper.serializeObject(loadKnowledgeBase("../empty.drl")); final KieSession ksession_1 = createKnowledgeSession(kbase); final String expected_1 = "expected_1"; final String expected_2 = "expected_2"; final FactHandle handle_1 = ksession_1.insert(expected_1); final FactHandle handle_2 = ksession_1.insert(expected_2); ksession_1.fireAllRules(); final Collection<? extends KieSession> coll_1 = kbase.getKieSessions(); assertTrue(coll_1.size() == 1); final KieSession ksession_2 = coll_1.iterator().next(); final Object actual_1 = ksession_2.getObject(handle_1); final Object actual_2 = ksession_2.getObject(handle_2); assertEquals(expected_1, actual_1); assertEquals(expected_2, actual_2); ksession_1.dispose(); final Collection<? extends KieSession> coll_2 = kbase.getKieSessions(); assertTrue(coll_2.size() == 0); // here to make sure it's safe to call dispose() twice ksession_1.dispose(); final Collection<? extends KieSession> coll_3 = kbase.getKieSessions(); assertTrue(coll_3.size() == 0); }
@Test public void testGetFactHandle() throws Exception { final KieBase kbase = SerializationHelper.serializeObject(loadKnowledgeBase("../empty.drl")); final KieSession ksession = createKnowledgeSession(kbase); for (int i = 0; i < 20; i++) { final Object object = new Object(); ksession.insert(object); final FactHandle factHandle = ksession.getFactHandle(object); assertNotNull(factHandle); assertEquals(object, ksession.getObject(factHandle)); } ksession.dispose(); }
@Test @SuppressWarnings({ "rawtypes", "unchecked" }) public void testGetObjectCommand() throws Exception { String expected_1 = "expected_1"; String expected_2 = "expected_2"; FactHandle handle_1 = ksession.insert( expected_1 ); FactHandle handle_2 = ksession.insert( expected_2 ); ksession.fireAllRules(); Object fact = ksession.getObject(handle_1); assertNotNull(fact); assertEquals(expected_1, fact); List<Command<?>> commands = new ArrayList<Command<?>>(); commands.add(CommandFactory.newGetObject(handle_1, "out_1")); commands.add(CommandFactory.newGetObject(handle_2, "out_2")); Command cmds = CommandFactory.newBatchExecution( commands ); ExecutionResults result = (ExecutionResults) ksession.execute( cmds ); assertNotNull("GetObjectCommand result is null!", result); assertEquals( expected_1, result.getValue("out_1") ); assertEquals( expected_2, result.getValue("out_2") ); }
@Override public Object getObject( FactHandle factHandle ) { return getKieSession().getObject( factHandle ); }
@Override public Object getObject( FactHandle factHandle ) { return getKieSession().getObject( factHandle ); }
/** * Print out details of all facts in working memory. * Handy for debugging. */ @SuppressWarnings("unused") private void printFactsMessage(KieSession kieSession) { Collection<FactHandle> allHandles = kieSession.getFactHandles(); String msg = "\nAll facts:\n"; for (FactHandle handle : allHandles) { msg += " " + kieSession.getObject(handle) + "\n"; } System.out.println(msg); }
@SuppressWarnings("unchecked") public List<T> findFacts(final KieSession session) { ObjectFilter filter = new ObjectFilter() { @Override public boolean accept(Object object) { return object.getClass().equals(classToFind); } }; Collection<FactHandle> factHandles = session.getFactHandles(filter); List<T> facts = new ArrayList<T>(); for (FactHandle handle : factHandles) { facts.add((T) session.getObject(handle)); } return facts; }
@Test public void testModifyRetractWithFunction() throws Exception { final KieBase kbase = SerializationHelper.serializeObject(loadKnowledgeBase("test_RetractModifyWithFunction.drl")); final KieSession ksession = createKnowledgeSession(kbase); final org.drools.compiler.Cheese stilton = new org.drools.compiler.Cheese("stilton", 7); final org.drools.compiler.Cheese muzzarella = new org.drools.compiler.Cheese("muzzarella", 9); final int sum = stilton.getPrice() + muzzarella.getPrice(); final FactHandle stiltonHandle = ksession.insert(stilton); final FactHandle muzzarellaHandle = ksession.insert(muzzarella); ksession.fireAllRules(); assertEquals(sum, stilton.getPrice()); assertEquals(1, ksession.getFactCount()); assertNotNull(ksession.getObject(stiltonHandle)); assertNotNull(ksession.getFactHandle(stilton)); assertNull(ksession.getObject(muzzarellaHandle)); assertNull(ksession.getFactHandle(muzzarella)); } }
public DroolsAlarmContext(File rulesFolder) { super(rulesFolder, Alarmd.NAME, "DroolsAlarmContext"); setOnNewKiewSessionCallback(kieSession -> { kieSession.setGlobal("alarmService", alarmService); kieSession.insert(alarmTicketerService); // Rebuild the alarm id -> fact handle map alarmsById.clear(); for (FactHandle fact : kieSession.getFactHandles()) { final Object objForFact = kieSession.getObject(fact); if (objForFact instanceof OnmsAlarm) { final OnmsAlarm alarmInSession = (OnmsAlarm)objForFact; alarmsById.put(alarmInSession.getId(), new AlarmAndFact(alarmInSession, fact)); } } }); }