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 { } }