TemplateInvoker.java 文件源码

java
阅读 21 收藏 0 点赞 0 评论 0

项目:scipio-erp 作者:
/**
     * 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);
    }
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号