package com.ibeetl.admin.core.gen; import java.io.IOException; import org.beetl.core.Configuration; import org.beetl.core.Context; import org.beetl.core.Function; import org.beetl.core.GroupTemplate; import org.beetl.core.resource.ClasspathResourceLoader; import com.ibeetl.admin.core.util.beetl.VerifyForamtFunction; public abstract class BaseTarget implements Target { protected GroupTemplate gt = null; protected String urlBase = null; @Override public void flush(AutoGen gen, String content) { // TODO Auto-generated method stub } @Override public GroupTemplate getGroupTemplate() { if(gt!=null) { return gt; } ClassLoader loader = Thread.currentThread().getContextClassLoader(); ClasspathResourceLoader rs = new ClasspathResourceLoader(loader,"codeTemplate"); try { Configuration cfg = Configuration.defaultConfiguration(); cfg.setStatementStart("@"); cfg.setStatementEnd(null); cfg.setHtmlTagSupport(false); cfg.build(); gt = new GroupTemplate(rs,cfg); gt.registerFunction("verifyFormat", new VerifyForamtFunction()); gt.registerFunction("upperFirst", new Function() { @Override public Object call(Object[] paras, Context ctx) { String s = (String)paras[0]; return upperFirst(s); } }); } catch (IOException e) { throw new RuntimeException(e); } return gt; } public static String upperFirst(String s) { if (Character.isUpperCase(s.charAt(0))) return s; else return (new StringBuilder()) .append(Character.toUpperCase(s.charAt(0))) .append(s.substring(1)).toString(); } public GroupTemplate getGt() { return gt; } public void setGt(GroupTemplate gt) { this.gt = gt; } public String getUrlBase() { return urlBase; } public void setUrlBase(String urlBase) { this.urlBase = urlBase; } }