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); }
if (isInversionOfControl()) { ((ProcessInstance) getProcessInstance()).getKnowledgeRuntime() .update(((ProcessInstance) getProcessInstance()).getKnowledgeRuntime().getFactHandle(this), this); } else { try {
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); }
if (isInversionOfControl()) { ((ProcessInstance) getProcessInstance()).getKnowledgeRuntime() .update(((ProcessInstance) getProcessInstance()).getKnowledgeRuntime().getFactHandle(this), this); } else { try {