/**
* Wraps the TemplateInvoker in an appropriate TemplateModel, using explicit model type.
* Can be called manually as this logic may not be present in <code>ObjectWrapper.wrap</code>.
*/
@SuppressWarnings("unchecked")
public static <T extends TemplateModel> T wrap(TemplateInvoker invoker, WrapperModel targetModel, ObjectWrapper objectWrapper) throws TemplateModelException {
if (targetModel == null || targetModel == WrapperModel.HYBRID) {
return (T) new HybridInvokerWrapper(invoker);
} else if (targetModel == null || targetModel == WrapperModel.SCALAR) {
// 2017-03-31: just avoid the bean wrapper as much as possible, even though may not entirely be able to
// if (invoker instanceof StringTemplateInvoker && objectWrapper != null) {
// return (T) objectWrapper.wrap(invoker);
// } else {
return (T) new ScalarInvokerWrapper(invoker);
// }
} else if (targetModel == WrapperModel.DIRECTIVE) {
return (T) new DirectiveInvokerWrapper(invoker);
}
throw new UnsupportedOperationException("Unsupported template invoker FTL wrapper model: " + targetModel);
}
TemplateInvoker.java 文件源码
java
阅读 21
收藏 0
点赞 0
评论 0
项目:scipio-erp
作者:
评论列表
文章目录