package foundation.data.loader;
|
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
|
import foundation.action.ActionMeta;
|
import foundation.action.WorkStep;
|
import foundation.action.WorkflowDispatcher;
|
import foundation.dao.OrderBy;
|
import foundation.data.entity.Entity;
|
import foundation.data.entity.EntitySet;
|
import foundation.data.object.DataObject;
|
import foundation.server.Initializer;
|
|
public class WorkflowLoader extends Initializer {
|
|
protected static Logger logger;
|
|
static {
|
logger = LogManager.getLogger(WorkflowLoader.class);
|
}
|
|
@Override
|
public void startUp() throws Exception {
|
load();
|
}
|
|
@Override
|
public void shutDown() throws Exception {
|
|
}
|
|
private void load() throws Exception {
|
//1. 加载标准 action
|
loadActions();
|
|
//2. 加载 work flow
|
loadWorkflows();
|
}
|
|
private void loadActions() throws Exception {
|
DataObject dataObject = DataObject.getInstance("sys_act_action");
|
EntitySet entitySet = dataObject.getTableEntitySet(new OrderBy("provider_name"));
|
|
for (Entity entity: entitySet) {
|
ActionMeta actionMeta = new ActionMeta();
|
actionMeta.load(entity);
|
|
WorkflowDispatcher.registerOneAction(actionMeta);
|
}
|
}
|
|
private void loadWorkflows() throws Exception {
|
DataObject dataObject = DataObject.getInstance("sys_act_workflow");
|
EntitySet entitySet = dataObject.getTableEntitySet(new OrderBy("data_name, order_no"));
|
|
for (Entity entity: entitySet) {
|
WorkStep step = new WorkStep();
|
step.load(entity);
|
WorkflowDispatcher.registerOneStep(step);
|
}
|
}
|
|
}
|