Commit 1f0bd7b7 by 吴佳

获取依赖moduleList后先判断是否存在,再执行ModuleList里面的Default Rule

parent dbf34e6e
...@@ -314,31 +314,33 @@ public class DCR { ...@@ -314,31 +314,33 @@ public class DCR {
//3.如果依赖moduleList,执行ModuleList里面的Default Rule //3.如果依赖moduleList,执行ModuleList里面的Default Rule
//3.1查找该ModuleList的Emitter //3.1查找该ModuleList的Emitter
ModuleList moduleList = (ModuleList)MdaDriver.getBaseObject(null,path); ModuleList moduleList = (ModuleList)MdaDriver.getBaseObject(null,path);
if(!MdaUtils.isEmpty(moduleList)) {
AbstractScopeEmitter emitterOfModuleList = getModuleListEmitter(moduleList.getDataClass()); AbstractScopeEmitter emitterOfModuleList = getModuleListEmitter(moduleList.getDataClass());
if(emitter == null){ if (emitter == null) {
keyStack.pop(); keyStack.pop();
return; return;
} }
//3.2深入执行该ModuleList每一项的default rule //3.2深入执行该ModuleList每一项的default rule
Map<String,Map<String,Object>> subMergeQueue = (Map<String,Map<String,Object>>)flagOrDps; Map<String, Map<String, Object>> subMergeQueue = (Map<String, Map<String, Object>>) flagOrDps;
subMergeQueue.entrySet().forEach(entry->{ subMergeQueue.entrySet().forEach(entry -> {
String idxStr = entry.getKey(); String idxStr = entry.getKey();
int num = Integer.parseInt(idxStr); int num = Integer.parseInt(idxStr);
if(num <= 0){ if (num <= 0) {
return; return;
} }
if(moduleList.size() <= 0){ if (moduleList.size() <= 0) {
return; return;
} }
if (moduleList == null || moduleList.isEmpty()){ if (moduleList == null || moduleList.isEmpty()) {
return; return;
} }
IModule subRootModule = moduleList.getElement(num); IModule subRootModule = moduleList.getElement(num);
//3.3设置上下文,以当前数据项为root点,执行Default //3.3设置上下文,以当前数据项为root点,执行Default
emitterOfModuleList.acceptContext(subRootModule); emitterOfModuleList.acceptContext(subRootModule);
executeMergedQueue(subRootModule,emitterOfModuleList,rootMergeMap,entry.getValue(),keyStack); executeMergedQueue(subRootModule, emitterOfModuleList, rootMergeMap, entry.getValue(), keyStack);
emitterOfModuleList.removeContext(); emitterOfModuleList.removeContext();
}); });
}
//执行一下自己 //执行一下自己
//emitter.executeDefault(path); //emitter.executeDefault(path);
keyStack.pop(); keyStack.pop();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment