package org.fireflow.pdl.bpel.basic;
import javax.xml.namespace.QName;
import org.fireflow.client.WorkflowSession;
import org.fireflow.client.impl.WorkflowSessionLocalImpl;
import org.fireflow.engine.context.RuntimeContext;
import org.fireflow.engine.entity.runtime.ProcessInstance;
import org.fireflow.engine.entity.runtime.Variable;
import org.fireflow.engine.entity.runtime.impl.AbsVariable;
import org.fireflow.engine.entity.runtime.impl.VariableImpl;
import org.fireflow.engine.modules.persistence.PersistenceService;
import org.fireflow.engine.modules.persistence.VariablePersister;
import org.fireflow.pvm.kernel.Token;
import org.fireflow.pvm.pdllogic.BusinessStatus;
import org.fireflow.pvm.pdllogic.ExecuteResult;
import org.firesoa.common.schema.NameSpaces;
public class XYZActivity extends BasicActivity {
public XYZActivity(String name){
super(name);
}
@Override
public ExecuteResult execute(WorkflowSession session, Token token,
Object workflowElement) {
RuntimeContext ctx = ((WorkflowSessionLocalImpl)session).getRuntimeContext();
ProcessInstance processInstance = ((WorkflowSessionLocalImpl)session).getCurrentProcessInstance();
PersistenceService persistenceService = ctx.getEngineModule(PersistenceService.class, token.getProcessType());
VariablePersister variablePersister = persistenceService.getVariablePersister();
Variable var = variablePersister.findVariable(processInstance.getScopeId(), "x");
Object _x = var.getPayload();
if (_x != null) {
Integer x = (Integer) _x;
int level = getLevel();
for (int i = 0; i < (level + 1); i++) {
System.out.print(" ");// 打印空格
}
System.out.println(this.getName() + " executed!(x=" + x + ")");
x = x + 1;
((VariableImpl)var).setPayload(x);
variablePersister.saveOrUpdate(var);
}else{
System.out.println(this.getName() + " executed!(x is null)");
}
ExecuteResult result = new ExecuteResult();
result.setStatus(BusinessStatus.COMPLETED);
return result;
}
}