if (caseFile != null) { this.caseVariables = caseFile.getData();
public void internalSetVariable(String name, Object value) { if (name.startsWith(VariableScope.CASE_FILE_PREFIX)) { String nameInCaseFile = name.replaceFirst(VariableScope.CASE_FILE_PREFIX, ""); // store it under case file rather regular variables @SuppressWarnings("unchecked") Collection<CaseData> caseFiles = (Collection<CaseData>) getProcessInstance().getKnowledgeRuntime().getObjects(new ClassObjectFilter(CaseData.class)); if (caseFiles.size() == 1) { CaseData caseFile = (CaseData) caseFiles.iterator().next(); FactHandle factHandle = getProcessInstance().getKnowledgeRuntime().getFactHandle(caseFile); if (value == null) { caseFile.remove(nameInCaseFile); } else { caseFile.add(nameInCaseFile, value); } getProcessInstance().getKnowledgeRuntime().update(factHandle, caseFile); ((KieSession)getProcessInstance().getKnowledgeRuntime()).fireAllRules(); return; } } // not a case, store it in normal variables variables.put(name, value); }
return caseFile.getData(lookUpName);
public void internalSetVariable(String name, Object value) { if (name.startsWith(VariableScope.CASE_FILE_PREFIX)) { String nameInCaseFile = name.replaceFirst(VariableScope.CASE_FILE_PREFIX, ""); // store it under case file rather regular variables @SuppressWarnings("unchecked") Collection<CaseData> caseFiles = (Collection<CaseData>) getProcessInstance().getKnowledgeRuntime().getObjects(new ClassObjectFilter(CaseData.class)); if (caseFiles.size() == 1) { CaseData caseFile = (CaseData) caseFiles.iterator().next(); FactHandle factHandle = getProcessInstance().getKnowledgeRuntime().getFactHandle(caseFile); if (value == null) { caseFile.remove(nameInCaseFile); } else { caseFile.add(nameInCaseFile, value); } getProcessInstance().getKnowledgeRuntime().update(factHandle, caseFile); ((KieSession)getProcessInstance().getKnowledgeRuntime()).fireAllRules(); return; } } // not a case, store it in normal variables variables.put(name, value); }
caseVariables.put("caseDetail", "my test case"); caseVariables.put("age", 55); when(caseData.getData()).thenReturn(caseVariables);
@Test public void testProcessContextGetData() { KieBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); KieSession ksession = kbase.newKieSession(); assertNotNull(ksession); CaseInformation caseInfo = new CaseInformation(); caseInfo.add("test", "value"); ksession.insert(caseInfo); ProcessContext processContext = new ProcessContext(ksession); CaseData caseData = processContext.getCaseData(); assertNotNull(caseData); Map<String, Object> allData = caseData.getData(); assertNotNull(allData); assertEquals(1, allData.size()); assertEquals("value", caseData.getData("test")); }
if (caseFile != null) { this.caseVariables = caseFile.getData();
return caseFile.getData(lookUpName);