package foundation.io;
|
|
import java.io.FileNotFoundException;
|
|
import foundation.dao.Filter;
|
import foundation.dao.OrderBy;
|
import foundation.data.entity.Entity;
|
import foundation.data.entity.EntitySet;
|
import foundation.data.object.DataObject;
|
import foundation.io.define.DataIO;
|
import foundation.io.define.IOSource;
|
import foundation.io.define.IOTask;
|
import foundation.io.define.IOWorkStep;
|
import foundation.io.define.IOWorkflow;
|
import foundation.io.mapping.FieldMapping;
|
import foundation.io.mapping.IOMappings;
|
import foundation.persist.NamedSQL;
|
import foundation.server.Initializer;
|
|
|
public class IOLoader extends Initializer {
|
|
private static IOLoader instance;
|
|
|
private IOLoader() throws FileNotFoundException {
|
|
}
|
|
public static synchronized IOLoader getInstance() throws FileNotFoundException {
|
if (instance == null) {
|
if (instance == null) {
|
instance = new IOLoader();
|
}
|
}
|
|
return instance;
|
}
|
|
@Override
|
public void startUp() throws Exception {
|
|
}
|
|
public static synchronized IOTask loadOneIOTask(String taskName, IOTask ioTask) throws Exception {
|
//1.
|
if (ioTask != null) {
|
ioTask.clear();
|
}
|
|
//2.
|
DataObject dataObject = DataObject.getInstance("sys_io");
|
Filter filter = new Filter("task_name", taskName).add("is_active", "T");
|
OrderBy orderBy = new OrderBy("index_no");
|
EntitySet dataIOSet = dataObject.getTableEntitySet(filter, orderBy);
|
|
for (Entity entity: dataIOSet) {
|
DataIO dataIO = new DataIO();
|
dataIO.load(entity);
|
|
if (ioTask == null) {
|
ioTask = new IOTask(IOSource.ConfigDefine);
|
ioTask.setName(taskName);
|
}
|
|
ioTask.addDataIO(dataIO);
|
}
|
|
return ioTask;
|
}
|
|
public static IOMappings loadOneIOMappings(String mappingsId, IOMappings mappings) throws Exception {
|
//1.
|
if (mappings != null) {
|
mappings.clear();
|
}
|
|
//2. load field mapping set
|
DataObject dataObject = DataObject.getInstance("sys_io_mapping");
|
Entity entity = dataObject.getTableEntity(mappingsId);
|
|
if (entity == null) {
|
return null;
|
}
|
|
if (mappings == null) {
|
mappings = new IOMappings(IOSource.ConfigDefine);
|
}
|
|
mappings.load(entity);
|
|
//3. load field mapping
|
dataObject = DataObject.getInstance("sys_io_mapping_field");
|
Filter filter = new Filter("parent_id", mappingsId).add("is_active", "T");
|
OrderBy orderBy = new OrderBy("index_no");
|
EntitySet fieldMappingSet = dataObject.getTableEntitySet(filter, orderBy);
|
|
for (Entity fieldEntity: fieldMappingSet) {
|
FieldMapping mapping = new FieldMapping();
|
mapping.load(fieldEntity);
|
|
mappings.addFieldMapping(mapping);
|
}
|
|
//4.
|
return mappings;
|
}
|
|
public static IOWorkflow loadIOActions(DataIO dataIO, IOWorkflow workflow) throws Exception {
|
String ioID = dataIO.getId();
|
|
//1.
|
if (workflow == null) {
|
workflow = new IOWorkflow();
|
}
|
else {
|
workflow.clear();
|
}
|
|
//2
|
NamedSQL namedSQL = NamedSQL.getInstance("getIOWorkflowByParentId");
|
namedSQL.setParam("parent_id", ioID);
|
EntitySet entitySet = namedSQL.getEntitySet();
|
|
for (Entity entity: entitySet) {
|
IOWorkStep step = new IOWorkStep();
|
step.load(entity);
|
|
workflow.loadOne(step.getName(), step);
|
}
|
|
return workflow;
|
}
|
|
public static IOWorkflow loadIOWrokflow(String name) throws Exception {
|
NamedSQL namedSQL = NamedSQL.getInstance("getIOWorkflowByName");
|
namedSQL.setParam("workflow_name", name);
|
EntitySet entitySet = namedSQL.getEntitySet();
|
|
if (entitySet.isEmpty()) {
|
return null;
|
}
|
|
IOWorkflow result = new IOWorkflow();
|
|
for (Entity entity: entitySet) {
|
IOWorkStep step = new IOWorkStep();
|
step.load(entity);
|
|
result.loadOne(step.getName(), step);
|
}
|
|
return result;
|
}
|
|
public static void loadIOMappings(DataIO dataIO) {
|
|
}
|
|
@Override
|
public void shutDown() throws Exception {
|
|
}
|
|
}
|