package org.fireflow.pdl.bpel.structure;
import java.util.ArrayList;
import java.util.List;
import org.fireflow.client.WorkflowSession;
import org.fireflow.client.impl.WorkflowSessionLocalImpl;
import org.fireflow.engine.context.RuntimeContext;
import org.fireflow.pdl.bpel.AbstractActivity;
import org.fireflow.pdl.bpel.BpelActivity;
import org.fireflow.pvm.kernel.KernelManager;
import org.fireflow.pvm.kernel.PObjectKey;
import org.fireflow.pvm.kernel.Token;
public abstract class StructureActivity extends AbstractActivity {
List<Child> children = new ArrayList<Child>();//子节点
public StructureActivity(String name){
super(name);
}
public void addChild(Child child){
this.children.add(child);
}
public void addChild(int index,Child child){
this.children.add(index, child);
}
public void setChild(int index,Child child){
this.children.set(index, child);
}
public List<Child> getChildren(){
return children;
}
protected void executeChildActivity(WorkflowSession session ,Token parentToken,BpelActivity activity){
PObjectKey pobjectKey = new PObjectKey(parentToken.getProcessId(),parentToken.getVersion(),parentToken.getProcessType(),activity.getId());
RuntimeContext ctx = ((WorkflowSessionLocalImpl)session).getRuntimeContext();
KernelManager kernelManager = ctx.getDefaultEngineModule(KernelManager.class);
kernelManager.startPObject(session, pobjectKey, parentToken,null);
}
public void abort(WorkflowSession session,Token thisToken,Object workflowElement){
}
}