/** * 渲染模板 * * @param template {@link Template} * @param bindingMap 绑定参数 * @return 渲染后的内容 */ public static String render(Template template, Map<String, Object> bindingMap) { template.binding(bindingMap); return template.render(); }
String entityResult = entityTemplate.render(); log.info(entityResult); String daoResult = daoTemplate.render(); log.info(daoResult); String serviceResult = serviceTemplate.render(); log.info(serviceResult); String serviceImplResult = serviceImplTemplate.render(); log.info(serviceImplResult); String controllerResult = controllerTemplate.render(); log.info(controllerResult);
/** * 渲染模板 * * @param template {@link Template} * @param bindingMap 绑定参数 * @return 渲染后的内容 */ public static String render(Template template, Map<String, Object> bindingMap) { template.binding(bindingMap); return template.render(); }
/** * 渲染模板 * * @param template {@link Template} * @param bindingMap 绑定参数 * @return 渲染后的内容 */ public static String render(Template template, Map<String, Object> bindingMap) { template.binding(bindingMap); return template.render(); }
/** * 渲染模板 * @param template {@link Template} * @param bindingMap 绑定参数 * @return 渲染后的内容 */ public static String render(Template template, Map<String, Object> bindingMap){ template.binding(bindingMap); return template.render(); }
/** 渲染模板 * @param template * @param paras * @return 模板返回值 */ public static String render(String template, Map<String, Object> paras) { Template t = gt.getTemplate(template); t.binding(paras); return t.render(); }
/** 渲染模板 * @param template * @param paras * @return 模板返回值 */ public static String render(String template, Map<String, Object> paras) { Template t = gt.getTemplate(template); t.binding(paras); return t.render(); }
/** 执行脚本,和参数,返回脚本里的Root scope的变量 * @param script * @return */ public static Map executeAndReturnRootScopeVars(String script) { String start = gt.getConf().getStatementStart(); String end = gt.getConf().getStatementEnd(); if(end==null) { end = ""; } StringBuilder sb = new StringBuilder(script.length() + start.length() + end.length()); sb.append(start).append(script); sb.append(end); Template t = gt.getTemplate(sb.toString()); // t.binding(paras); t.render(); Map<String, Integer> idnexMap = t.program.metaData.getTemplateRootScopeIndexMap(); Object[] values = t.ctx.vars; Map<String, Object> result = new HashMap<String, Object>(); for (Entry<String, Integer> entry : idnexMap.entrySet()) { String name = entry.getKey(); int index = entry.getValue(); Object value = values[index]; result.put(name, value); } return result; }
/** 执行脚本,和参数,返回脚本里的Root scope的变量 * @param script * @return */ public static Map executeAndReturnRootScopeVars(String script) { String start = gt.getConf().getStatementStart(); String end = gt.getConf().getStatementEnd(); if(end==null) { end = ""; } StringBuilder sb = new StringBuilder(script.length() + start.length() + end.length()); sb.append(start).append(script); sb.append(end); Template t = gt.getTemplate(sb.toString()); // t.binding(paras); t.render(); Map<String, Integer> idnexMap = t.program.metaData.getTemplateRootScopeIndexMap(); Object[] values = t.ctx.vars; Map<String, Object> result = new HashMap<String, Object>(); for (Entry<String, Integer> entry : idnexMap.entrySet()) { String name = entry.getKey(); int index = entry.getValue(); Object value = values[index]; result.put(name, value); } return result; }
/** * * @param path path * @param params params * @return map */ public static Map<String, String> getTemplatesRendered(String path, Map<String, Object> params) { Map<String, String> templateMap = new HashMap<>(); File[] files = FileUtil.getResourceFolderFiles(path); GroupTemplate gt = getGroupTemplate(path); for (File f : files) { if (f.isFile()) { String fileName = f.getName(); Template tp = gt.getTemplate(fileName); if (null != params) { tp.binding(params); } templateMap.put(fileName, tp.render()); } } return templateMap; }
@Override protected String render(Map<String, Object> renderArgs) { Thread t0 = Thread.currentThread(); ClassLoader loader0 = t0.getContextClassLoader(); try { Template beetlTemplate = getTemplate(); t0.setContextClassLoader(Act.app().classLoader()); beetlTemplate.binding(renderArgs); view.templateModifier.apply(beetlTemplate); return beetlTemplate.render(); } catch (org.beetl.core.exception.BeetlException be) { throw new BeetlTemplateException(be); } finally { t0.setContextClassLoader(loader0); } }
/** * 构建错误码列表 * * @param errorCodeList 错误列表 * @param outPath */ private static void buildErrorCodeDoc(List<ApiErrorCode> errorCodeList, String outPath) { if (CollectionUtil.isNotEmpty(errorCodeList)) { Template mapper = BeetlTemplateUtil.getByName("ErrorCodeList.btl"); mapper.binding("list", errorCodeList);//类名 FileUtil.nioWriteFile(mapper.render(), outPath + FILE_SEPARATOR + "ErrorCodeList.md"); } } }
public static String fill(String content, Map<String, Object> params) throws IOException { StringTemplateResourceLoader resourceLoader = new StringTemplateResourceLoader(); Configuration cfg = Configuration.defaultConfiguration(); GroupTemplate gt = new GroupTemplate(resourceLoader, cfg); Template t = gt.getTemplate(content); t.binding(params); return t.render(); }
/** * @param template * @param data * @param destFile * @param charset */ public void render(String template, Map<String, Object> data, File destFile, String charset){ try { StringTemplateResourceLoader resourceLoader = new StringTemplateResourceLoader(); Configuration cfg = Configuration.defaultConfiguration(); Map<String, String> fnPkgMap = cfg.getFnPkgMap(); fnPkgMap.put("nameUtil", "com.github.dennisit.vplus.core.utils.CamelNameUtils"); cfg.setFnPkgMap(fnPkgMap); GroupTemplate gt = new GroupTemplate(resourceLoader, cfg); gt.setSharedVars(data); Template t = gt.getTemplate(template); String str = t.render(); FileUtils.write(destFile, str, charset); }catch (Exception e){ LOGGER.error("[执行错误]:" + template, e); } }
@Override public String fill(String tempFileName, Map<String, Object> params) { String output = null; try { ClasspathResourceLoader classpathResourceLoader = new ClasspathResourceLoader("template/"); Configuration cfg = Configuration.defaultConfiguration(); cfg.setPlaceholderStart("@{"); GroupTemplate groupTemplate = new GroupTemplate(classpathResourceLoader, cfg); Template template = groupTemplate.getTemplate(tempFileName); template.binding(params); output = template.render(); } catch (IOException e) { e.printStackTrace(); } return output; } }
private int handlerUpdateSql(Object t, SQLSource sqlSource) { if (this.sql == null || this.sql.length() == 0) { throw new BeetlSQLException(BeetlSQLException.QUERY_CONDITION_ERROR, "update操作没有输入过滤条件会导致更新所有记录"); } GroupTemplate gt = this.sqlManager.getBeetl().getGroupTemplate(); Template template = gt.getTemplate(sqlSource.getTemplate(), this.tempLoader); template.binding("_paras", new ArrayList<Object>()); template.binding("_root", t); String sql = template.render(); List<SQLParameter> param = (List<SQLParameter>) template.getCtx().getGlobal("_paras"); List<Object> paraLis = new ArrayList<Object>(); for (SQLParameter sqlParameter : param) { paraLis.add(sqlParameter.value); } addPreParam(paraLis); StringBuilder sb = new StringBuilder(sql); sb.append(" ").append(getSql()); this.setSql(sb); String targetSql = this.getSql().toString(); Object[] paras = getParams().toArray(); //先清除,避免执行出错后无法清除 clear(); int row = this.sqlManager.executeUpdate(new SQLReady(targetSql, paras)); return row; }
@Override public void genCode(String entityPkg, String entityClass, TableDesc tableDesc, GenConfig config, boolean isDisplay) { if (pkg == null) { pkg = entityPkg; } Template template = SourceGen.getGt().getTemplate(mapperTemplate); String mapperClass = entityClass + "Dao"; template.binding("className", mapperClass); template.binding("package", pkg); template.binding("entityClass", entityClass); String mapperHead = "import " + entityPkg + ".*;" + SourceGen.CR; template.binding("imports", mapperHead); String mapperCode = template.render(); if (isDisplay) { System.out.println(mapperCode); } else { try { SourceGen.saveSourceFile(GenKit.getJavaSRCPath(), pkg, mapperClass, mapperCode); } catch (IOException e) { throw new RuntimeException("mapper代码生成失败", e); } } }
/** * 合并所有接口文档到一个文档中 * @param apiDocList */ private static void buildAllInOne(List<ApiDoc> apiDocList,ApiConfig config) { String outPath = config.getOutPath(); FileUtil.mkdirs(outPath); Template tpl = BeetlTemplateUtil.getByName("AllInOne.btl"); tpl.binding("apiDocList", apiDocList); tpl.binding("errorCodeList", config.getErrorCodes()); tpl.binding("revisionLogList", config.getRevisionLogs()); String version = DateTimeUtil.long2Str(System.currentTimeMillis(),"yyyyMMddHHmm"); FileUtil.nioWriteFile(tpl.render(), outPath + FILE_SEPARATOR + "AllInOne-V"+version+".md"); }
/** * 公共生成controller api 文档 * * @param apiDocList * @param outPath */ private static void buildApiDoc(List<ApiDoc> apiDocList, String outPath) { FileUtil.mkdirs(outPath); for (ApiDoc doc : apiDocList) { Template mapper = BeetlTemplateUtil.getByName("ApiDoc.btl"); mapper.binding("desc", doc.getDesc()); mapper.binding("name", doc.getName()); mapper.binding("list", doc.getList());//类名 FileUtil.nioWriteFile(mapper.render(), outPath + FILE_SEPARATOR + doc.getName() + "Api.md"); } }
/** * 生成单个controller的api文档 * * @param outPath 代码输出路径 * @param controllerName controller 名称 */ public static void buildSingleControllerApi(String outPath, String controllerName) { FileUtil.mkdirs(outPath); SourceBuilder sourceBuilder = new SourceBuilder(true); ApiDoc doc = sourceBuilder.getSingleControllerApiData(controllerName); Template mapper = BeetlTemplateUtil.getByName("ApiDoc.btl"); mapper.binding("desc", doc.getDesc()); mapper.binding("name", doc.getName()); mapper.binding("list", doc.getList());//类名 FileUtil.writeFileNotAppend(mapper.render(), outPath + FILE_SEPARATOR + doc.getName() + "Api.md"); }