[jboss-user] [JBoss jBPM] - ProcessState getSubProcessDefinition is null
don_t
do-not-reply at jboss.com
Tue Nov 25 13:55:02 EST 2008
Hi, I'm trying to access the sub-process child node of a process-state. My test program is listed below. I call getSubProcessDefinition and always get null. Any ideas what I'm doing wrong?
| import java.util.HashMap;
| import java.util.Map;
|
| import junit.framework.TestCase;
|
| import org.dom4j.Element;
| import org.jbpm.graph.def.ProcessDefinition;
| import org.jbpm.graph.node.ProcessState;
| import org.jbpm.graph.node.SubProcessResolver;
|
| public class TestSubprocess extends TestCase {
|
| private static class MapBasedProcessRepository implements SubProcessResolver {
| private Map<String,ProcessDefinition> processes =
| new HashMap<String,ProcessDefinition>();
|
| public void add(ProcessDefinition processDefinition) {
| processes.put(processDefinition.getName(), processDefinition);
| }
|
| @Override
| public ProcessDefinition findSubProcess(Element element) {
| // TODO Auto-generated method stub
| return processes.get(element.attributeValue("name"));
| }
|
| }
|
| public void testProcessInstance() {
| MapBasedProcessRepository subProcessResolver = new MapBasedProcessRepository();
| ProcessDefinition subProcessDefinition = ProcessDefinition.parseXmlString(
| "<process-definition name='sub-p'>" +
| " <start-state>" +
| " <transition to='s' />" +
| " </start-state>" +
| " <state name='s'>" +
| " <transition to='t'/>" +
| " </state>" +
| " <state name='t'>" +
| " <transition to='end'/>" +
| " </state>" +
| " <end-state name='end' />" +
| "</process-definition>"
| );
| subProcessResolver.add( subProcessDefinition );
|
| subProcessDefinition = ProcessDefinition.parseXmlString(
| "<process-definition name='sub-q'>" +
| " <start-state>" +
| " <transition to='s' />" +
| " </start-state>" +
| " <state name='s'>" +
| " <transition to='t'/>" +
| " </state>" +
| " <state name='t'>" +
| " <transition to='end'/>" +
| " </state>" +
| " <end-state name='end' />" +
| "</process-definition>"
| );
| subProcessResolver.add( subProcessDefinition );
|
| ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
| "<process-definition name='super'>" +
| " <start-state name='start'>" +
| " <transition to='p' />" +
| " </start-state>" +
| " <process-state name='p'>" +
| " <sub-process name='sub-p' binding='late'/>" +
| " <transition to='q' />" +
| " </process-state>" +
| " <process-state name='q'>" +
| " <sub-process name='sub_q' binding='late' />" +
| " <transition to='end' />" +
| " </process-state>" +
| " <end-state name='end' />" +
| "</process-definition>"
| );
| subProcessResolver.add( processDefinition );
|
| ProcessState.setDefaultSubProcessResolver(subProcessResolver);
| ProcessState processState = (ProcessState) processDefinition.getNode("p");
| System.out.println(processState);
| System.out.println(processState.getSubProcessDefinition());
|
| processState = (ProcessState) processDefinition.getNode("q");
| System.out.println(processState);
| System.out.println(processState.getSubProcessDefinition());
| }
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4192246#4192246
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4192246
More information about the jboss-user
mailing list