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