runCurrentModules(currentModules, methodContext);
// 运行条件相同的组件
runGroupModules(methodContext.findConditionGroupModules(), methodContext);
// 运行遍历的组件
runInteratorModules(methodContext.findIteratorModules(), methodContext);
Result result = methodContext.getReturnResult();
// 字符类型 且需要组装字符时使用 一般是由某一方法返回的值变成整体的返回值
if (StringUtil.isEmptyAndNull(result.getRefereceValue()) && result.getAppends() != null) {
if (result.getClazz().equals(String.class)) {
StringBuilder builder = new StringBuilder();
String tempStr = null;
for (Append append : result.getAppends()) {
if (append.isEmptyAppend()) {
if (!StringUtil.isEmptyAndNull(append.getPrepend())) {
builder.append(append.getPrepend());
}
tempStr = String.valueOf(methodContext.getIdValue(append.getProperty()));
if (!StringUtil.isEmptyAndNull(tempStr)) {
builder.append(tempStr);
}
}
}
return builder.toString();
} else if (CheckAppendableClassUtil.INSTANCE.isCollection(result.getClazz())) {
Collection collection = new ArrayList();
Object obj = null;
for (Append append : result.getAppends()) {
if (append.isEmptyAppend()) {
obj = methodContext.getIdValue(append.getProperty());
if (obj != null) {
collection.add(obj);
}
}
}
return collection;
} else if (CheckAppendableClassUtil.INSTANCE.isMap(result.getClazz())) {
throw new RuntimeException("Dont support return type:" + result.getRetultType());
} else {
throw new RuntimeException("Dont support return type:" + result.getRetultType());
}
} else {
return methodContext.getIdValue(result.getRefereceValue());
}
}