package foundation.data.loader;
|
|
import foundation.dao.Filter;
|
import foundation.data.entity.Entity;
|
import foundation.data.entity.EntitySet;
|
import foundation.data.getter.EntitySetGetter;
|
import foundation.data.meta.template.PropertyTemplateBucket;
|
import foundation.data.object.DataJoin;
|
import foundation.data.object.DataJoins;
|
import foundation.data.object.DataObject;
|
import foundation.data.object.DataObjectContainer;
|
import foundation.persist.NamedSQL;
|
import foundation.persist.SQLRunner;
|
import foundation.server.Initializer;
|
|
public class DataObjectLoader extends Initializer {
|
|
@Override
|
public void startUp() throws Exception {
|
// SQLRunner.formatOracleTables();
|
|
//1. load data object
|
loadDataObject();
|
|
//2. load data object joins
|
loadDataObjectJoins();
|
|
//3. build data object
|
buildDataObjects();
|
|
//4.load data property template
|
loadDataPropertyTemplate();
|
}
|
|
private void loadDataPropertyTemplate() throws Exception {
|
PropertyTemplateBucket templateBucket = PropertyTemplateBucket.getInstance();
|
templateBucket.loadTemplateAndIndex();
|
}
|
|
@Override
|
public void shutDown() throws Exception {
|
|
}
|
|
private void loadDataObject() throws Exception {
|
DataObjectContainer objectContainer = DataObjectContainer.getInstance();
|
|
NamedSQL namedSQL = NamedSQL.getInstance("getDataObjectList");
|
EntitySet objectSet = SQLRunner.getEntitySet(namedSQL, new EntitySetGetter(null, null));
|
|
for (Entity entity: objectSet) {
|
DataObject dataObject = new DataObject();
|
dataObject.load(entity);
|
|
objectContainer.add(dataObject.getDataName(), dataObject);
|
}
|
}
|
|
private void loadDataObjectJoins() throws Exception {
|
NamedSQL namedSQL = NamedSQL.getInstance("getDataObjectJoinList");
|
EntitySet entitySet = namedSQL.getEntitySet();
|
|
for (Entity entity: entitySet) {
|
DataJoin dataJoin = new DataJoin();
|
dataJoin.load(entity);
|
|
if (!dataJoin.isActive()) {
|
continue;
|
}
|
|
DataObject dataObject = DataObject.getInstance(dataJoin.getDataName());
|
|
if (dataObject == null) {
|
continue;
|
}
|
|
dataObject.loadOneDataJoin(dataJoin);
|
}
|
}
|
|
private void buildDataObjects() throws Exception {
|
DataObjectContainer container = DataObjectContainer.getInstance();
|
|
for (DataObject dataObject: container) {
|
dataObject.build();
|
}
|
}
|
|
public static DataObject loadOneDataObject(String name) throws Exception {
|
DataObject dataObject = DataObject.getInstance("sys_data_object");
|
Filter filter = new Filter("table_name", name);
|
Entity entity = dataObject.getTableEntity(filter);
|
|
if (entity == null) {
|
return null;
|
}
|
|
dataObject = new DataObject();
|
dataObject.load(entity);
|
|
return dataObject;
|
}
|
|
public static DataJoins loadOneDataObjectDataJoins(String name) throws Exception {
|
DataObject dataObject = DataObject.getInstance("sys_data_object_join");
|
Filter filter = new Filter("dataname", name);
|
EntitySet entitySet = dataObject.getTableEntitySet(filter);
|
|
if (entitySet == null || entitySet.isEmpty()) {
|
return null;
|
}
|
|
DataJoins dataJoins = new DataJoins();
|
|
for (Entity entity: entitySet) {
|
DataJoin dataJoin = new DataJoin();
|
dataJoin.load(entity);
|
|
dataJoins.loadOne(dataJoin);
|
}
|
|
return dataJoins;
|
}
|
|
}
|