package foundation.icall; import foundation.dao.Filter; import foundation.dao.OrderBy; import foundation.data.entity.Entity; import foundation.data.entity.EntitySet; import foundation.data.mapping.FieldMapping; import foundation.data.mapping.Mappings; import foundation.data.object.DataObject; import foundation.icall.callout.HttpServerMeta; import foundation.icall.callout.RemoteDBMeta; import foundation.icall.callout.RemoteSourceBucket; import foundation.server.Initializer; public class ICallLoader extends Initializer { @Override public void startUp() throws Exception { load(); } @Override public void shutDown() throws Exception { } public void load() throws Exception { //1. sources loadSources(); //2. ICalls loadICalls(); } private void loadSources() throws Exception { RemoteSourceBucket sourceBucket = RemoteSourceBucket.getInstance(); loadRemoteDataBases(sourceBucket); loadHttpServers(sourceBucket); } public static void loadRemoteDataBases(RemoteSourceBucket sourceBucket) throws Exception { DataObject dataObject = DataObject.getInstance("sys_interface_source"); EntitySet databaseList = dataObject.getTableEntitySet(new Filter("type", "database")); for (Entity entity : databaseList) { RemoteDBMeta meta = new RemoteDBMeta(); meta.loadHead(entity); dataObject = DataObject.getInstance("sys_interface_source_detail"); EntitySet elementList = dataObject.getTableEntitySet(new Filter("parent_id", entity.getId())); meta.loadDetail(elementList); sourceBucket.loadOne(meta.getName(), meta); } } public static void loadHttpServers(RemoteSourceBucket sourceBucket) throws Exception { DataObject dataObject = DataObject.getInstance("sys_interface_source"); EntitySet databaseList = dataObject.getTableEntitySet(new Filter("type", "server")); for (Entity entity : databaseList) { HttpServerMeta meta = new HttpServerMeta(); meta.load(entity); dataObject = DataObject.getInstance("sys_interface_source_detail"); EntitySet elementList = dataObject.getTableEntitySet(new Filter("parent_id", entity.getId())); meta.loadItems(elementList); sourceBucket.loadOne(meta.getName(), meta); } } private void loadICalls() throws Exception { DataObject dataObject = DataObject.getInstance("sys_interface"); EntitySet entitySet = dataObject.getBrowseEntitySet(); ICallBucket bucket = ICallBucket.getInstance(); for (Entity entity: entitySet) { ICallMeta meta = new ICallMeta(); meta.load(entity); bucket.loadOne(meta.getName(), meta); } bucket.activate(); } public static Mappings loadOneMappings(String mappingId, Mappings mappings) throws Exception { if (mappings == null) { mappings = new Mappings(mappingId); } else { mappings.clear(); } DataObject dataObject = DataObject.getInstance("sys_interface_field"); Filter filter = new Filter("parent_id", mappingId); EntitySet entitySet = dataObject.getTableEntitySet(filter, new OrderBy("index_no asc")); FieldMapping mapping; for (Entity entity: entitySet) { mapping = new FieldMapping(); mapping.load(entity); mappings.loadOne(mapping); } return mappings; } }