ModuleSource source = ModuleSource.INSTANCE;
ModuleMethodSource methodConfig = new ModuleMethodSource();
// 设定方法名
methodConfig.setMethod(attributeMethod.getStringValue());
methodConfig.setId(attributeId == null ? null : attributeId.getStringValue());
MethodContext methodContext = new MethodContext();
methodContext.setIsLog(attributeLog == null ? false : Boolean.parseBoolean(attributeLog.getStringValue()));
methodContext.setIsTransaction(attributeTransaction == null ? false :
Boolean.parseBoolean(attributeTransaction.getStringValue()));
methodContext.setIsVerify(attributeVerify == null ? false :
Boolean.parseBoolean(attributeVerify.getStringValue()));
methodConfig.setMethodContext(methodContext);
source.setClassAndMethodList(attributeBeanId.getStringValue(), methodConfig);
// 解析xml内部组件
Iterator<Element> it = element.elementIterator();
Element subElement = null;
while (it.hasNext()) {
subElement = it.next();
Object[] args = new Object[] { methodContext };
if (ELEMENT_NAME_PARAMETER.equals(subElement.getName())) {
Parameter parameter = new Parameter();
methodContext.setParameter(parameter);
args = new Object[] { parameter };
} else if (ELEMENT_NAME_RESULT.equals(subElement.getName())) {
Result result = new Result();
methodContext.setReturnResult(result);
args = new Object[] { result };
} else if (ELEMENT_NAME_MODULE.equals(subElement.getName())) {
ModuleBean module = new ModuleBean();
List<ModuleBean> modules = methodContext.findCurrentModules();
if (modules == null) {
modules = new ArrayList<ModuleBean>();
methodContext.setCurrentModules(modules);
}
modules.add(module);
args = new Object[] { module };
} else if (ELEMENT_NAME_ITERATOR.equals(subElement.getName())) {
IterateModules modules = new IterateModules();
methodContext.setIteratorModules(modules);
args = new Object[] { modules };
} else if (ELEMENT_NAME_NOT_EQUAL.equals(subElement.getName())) {
EqualGroupModules modules = new EqualGroupModules();
methodContext.setConditionGroupModule(modules);
args = new Object[] { modules };
} else if (ELEMENT_NAME_EQUAL.equals(subElement.getName())) {
EqualGroupModules modules = new EqualGroupModules();
methodContext.setConditionGroupModule(modules);
args = new Object[] { modules };
}
ElementFactory.findElement(subElement.getName(), args).doParese(subElement);
}