package foundation.code;
|
|
import foundation.dao.bizlogic.ICodeProvider;
|
import foundation.data.entity.Entity;
|
import foundation.data.entity.EntitySet;
|
import foundation.data.object.DataObject;
|
import foundation.data.rule.FieldDefaultValueCreator;
|
import foundation.server.Initializer;
|
|
public class CodeLoader extends Initializer {
|
|
public CodeLoader() {
|
|
}
|
|
@Override
|
public void startUp() throws Exception {
|
//1. 加载配置
|
load();
|
|
//2. 注册编码默认值Creator
|
registerCodeDefaultValueCreator();
|
|
//3.
|
CodeEngine codeEngine = CodeEngine.getInstance();
|
ICodeProvider.providerCreator = codeEngine;
|
}
|
|
@Override
|
public void shutDown() throws Exception {
|
|
}
|
|
public void load() throws Exception {
|
CodeEngine codeEngine = CodeEngine.createInstance();
|
|
try {
|
DataObject dataObject = DataObject.getInstance("sys_code");
|
EntitySet entitySet = dataObject.getTableEntitySet();
|
|
for (Entity entity: entitySet) {
|
CodeRule codeRule = new CodeRule();
|
codeRule.load(entity);
|
CodeRuleRuntime runtime = codeRule.toRuntime();
|
|
codeEngine.addOneRule(codeRule.getCode(), runtime);
|
}
|
|
//2. register code provider
|
// VariantCenter center = VariantCenter.getInstance();
|
// CodeProvider provider = CodeProvider.getInstance();
|
|
// center.registPersist(CodeProvider.getInstance().getVariantNames(), provider);
|
}
|
finally {
|
codeEngine.active();
|
}
|
}
|
|
public void reload() throws Exception {
|
CodeEngine codeEngine = CodeEngine.createInstance();
|
|
DataObject dataObject = DataObject.getInstance("sys_code");
|
EntitySet entitySet = dataObject.getTableEntitySet();
|
|
for (Entity entity: entitySet) {
|
CodeRule codeRule = new CodeRule();
|
codeRule.load(entity);
|
CodeRuleRuntime runtime = codeRule.toRuntime();
|
|
codeEngine.addOneRule(codeRule.getCode(), runtime);
|
}
|
|
//2.
|
codeEngine.active();
|
}
|
|
private void registerCodeDefaultValueCreator() {
|
//1. 注册到 field default value creator 中 (data object 中单条使用)
|
FieldDefaultValueCreator.registerOne("code", CodeDefaultValueCreator.class);
|
|
//2.
|
|
}
|
|
}
|