package foundation.version_doc; import foundation.dao.DataPackage; import foundation.dao.Filter; import foundation.dao.version.ApplyRelation; import foundation.dao.version.ApplyRelationBucket; import foundation.data.entity.Entity; import foundation.data.entity.EntitySet; import foundation.data.object.DataObject; import foundation.server.Initializer; public class VersionLoader extends Initializer { @Override public void startUp() throws Exception { load(); } @Override public void shutDown() throws Exception { } public void load() throws Exception { //1. 加载版本定义 loadVersionMetas(); //2. 加载版本定义 loadVersionApply(); //3. register version provider registerVersionProvider(); } private void loadVersionMetas() throws Exception { VersionBucket bucket = VersionBucket.getInstance(); DataObject dataObject = DataObject.getInstance("sys_object_version"); EntitySet entitySet = dataObject.getTableEntitySet(new Filter("is_active", "T")); for (Entity entity: entitySet) { VersionMeta meta = new VersionMeta(); meta.load(entity); bucket.loadOne(meta); } } private void loadVersionApply() throws Exception { ApplyRelationBucket bucket = ApplyRelationBucket.getInstance(); DataObject dataObject = DataObject.getInstance("sys_object_apply"); EntitySet entitySet = dataObject.getTableEntitySet(); for (Entity entity: entitySet) { ApplyRelation relation = new ApplyRelation(); relation.load(entity); bucket.loadOne(relation.getApplyDataName(),relation.getApplyTypeCode(), relation); } } private void registerVersionProvider() { VersionCenter versionCenter = VersionCenter.getInstance(); DataPackage.registerVersionProvider(versionCenter); } }