stGroup.registerRenderer(String.class, new StringRenderer());
public String toString(Object o, String formatString, Locale locale) { String s = (String)o; if ( formatString==null ) return s; if ( formatString.equals("upper") ) return s.toUpperCase(locale); if ( formatString.equals("lower") ) return s.toLowerCase(locale); if ( formatString.equals("cap") ) { return (s.length() > 0) ? Character.toUpperCase(s.charAt(0))+s.substring(1) : s; } if ( formatString.equals("url-encode") ) { return URLEncoder.encode(s); } if ( formatString.equals("xml-encode") ) { return escapeHTML(s); } return String.format(formatString, s); }
@Override public String toString(Object o, String formatString, Locale locale) { return super.toString(o, formatString, locale); } }
group.registerRenderer(String.class, new StringRenderer());
@Override public String toString(Object o, String formatString, Locale locale) { String s = (String)o; if ( formatString==null ) return s; if ( formatString.equals("upper") ) return s.toUpperCase(locale); if ( formatString.equals("lower") ) return s.toLowerCase(locale); if ( formatString.equals("cap") ) { return (s.length() > 0) ? Character.toUpperCase(s.charAt(0))+s.substring(1) : s; } if ( formatString.equals("url-encode") ) { try { return URLEncoder.encode(s, "UTF-8"); } catch (UnsupportedEncodingException ex) { // UTF-8 is standard, should always be available } } if ( formatString.equals("xml-encode") ) { return escapeHTML(s); } return String.format(locale, formatString, s); }
@Override public String toString(Object o, String formatString, Locale locale) { return super.toString(o, formatString, locale); } }
templateGroup.registerRenderer(String.class, new StringRenderer());
@Override public String toString(Object o, String formatString, Locale locale) { String s = (String)o; if ( formatString==null ) return s; if ( formatString.equals("upper") ) return s.toUpperCase(locale); if ( formatString.equals("lower") ) return s.toLowerCase(locale); if ( formatString.equals("cap") ) { return (s.length() > 0) ? Character.toUpperCase(s.charAt(0))+s.substring(1) : s; } if ( formatString.equals("url-encode") ) { try { return URLEncoder.encode(s, "UTF-8"); } catch (UnsupportedEncodingException ex) { // UTF-8 is standard, should always be available } } if ( formatString.equals("xml-encode") ) { return escapeHTML(s); } return String.format(locale, formatString, s); }
@Override public String toString(Object o, String formatString, Locale locale) { return super.toString(o, formatString, locale); } }
STGroup group = new STGroupFile("my_template.stg"); group.registerRenderer(String.class, new StringRenderer());
@Override public String toString(Object o, String formatString, Locale locale) { String s = (String)o; if ( formatString==null ) return s; if ( formatString.equals("upper") ) return s.toUpperCase(locale); if ( formatString.equals("lower") ) return s.toLowerCase(locale); if ( formatString.equals("cap") ) { return (s.length() > 0) ? Character.toUpperCase(s.charAt(0))+s.substring(1) : s; } if ( formatString.equals("url-encode") ) { try { return URLEncoder.encode(s, "UTF-8"); } catch (UnsupportedEncodingException ex) { // UTF-8 is standard, should always be available } } if ( formatString.equals("xml-encode") ) { return escapeHTML(s); } return String.format(locale, formatString, s); }
@Override public String toString(Object o, String formatString, Locale locale) { return super.toString(o, formatString, locale); } }
import org.stringtemplate.v4.*; public class Test { public static void main(String[] args) { STGroup stGroup = new STGroupFile("testGroup.stg"); ST st = stGroup.getInstanceOf("test"); stGroup.registerRenderer(String.class, new StringRenderer()); st.add("text", "helloWorld"); // note lower case 'h' System.out.println(st.render()); } }
@Override public String toString(Object o, String formatString, Locale locale) { String s = (String)o; if ( formatString==null ) return s; if ( formatString.equals("upper") ) return s.toUpperCase(locale); if ( formatString.equals("lower") ) return s.toLowerCase(locale); if ( formatString.equals("cap") ) { return (s.length() > 0) ? Character.toUpperCase(s.charAt(0))+s.substring(1) : s; } if ( formatString.equals("url-encode") ) { try { return URLEncoder.encode(s, "UTF-8"); } catch (UnsupportedEncodingException ex) { // UTF-8 is standard, should always be available } } if ( formatString.equals("xml-encode") ) { return escapeHTML(s); } return String.format(locale, formatString, s); }
@Override public String toString(Object o, String formatString, Locale locale) { return super.toString(o, formatString, locale); } }
@Override protected STGroup loadTemplates() { STGroup result = super.loadTemplates(); result.registerRenderer(Integer.class, new NumberRenderer()); result.registerRenderer(String.class, new StringRenderer()); result.setListener(new STErrorListener() { @Override public void compileTimeError(STMessage msg) { reportError(msg); } @Override public void runTimeError(STMessage msg) { reportError(msg); } @Override public void IOError(STMessage msg) { reportError(msg); } @Override public void internalError(STMessage msg) { reportError(msg); } private void reportError(STMessage msg) { getCodeGenerator().tool.errMgr.toolError(ErrorType.STRING_TEMPLATE_WARNING, msg.cause, msg.toString()); } }); return result; }
@Override public String toString(Object o, String formatString, Locale locale) { String s = (String)o; if ( formatString==null ) return s; if ( formatString.equals("upper") ) return s.toUpperCase(locale); if ( formatString.equals("lower") ) return s.toLowerCase(locale); if ( formatString.equals("cap") ) { return (s.length() > 0) ? Character.toUpperCase(s.charAt(0))+s.substring(1) : s; } if ( formatString.equals("url-encode") ) { try { return URLEncoder.encode(s, "UTF-8"); } catch (UnsupportedEncodingException ex) { // UTF-8 is standard, should always be available } } if ( formatString.equals("xml-encode") ) { return escapeHTML(s); } return String.format(locale, formatString, s); }
@Override public String toString(Object o, String formatString, Locale locale) { return super.toString(o, formatString, locale); } }
@Override protected STGroup loadTemplates() { STGroup result = super.loadTemplates(); result.registerRenderer(Integer.class, new NumberRenderer()); result.registerRenderer(String.class, new StringRenderer()); result.setListener(new STErrorListener() { @Override public void compileTimeError(STMessage msg) { reportError(msg); } @Override public void runTimeError(STMessage msg) { reportError(msg); } @Override public void IOError(STMessage msg) { reportError(msg); } @Override public void internalError(STMessage msg) { reportError(msg); } private void reportError(STMessage msg) { getCodeGenerator().tool.errMgr.toolError(ErrorType.STRING_TEMPLATE_WARNING, msg.cause, msg.toString()); } }); return result; }
@Override public String toString(Object o, String formatString, Locale locale) { String s = (String)o; if ( formatString==null ) return s; if ( formatString.equals("upper") ) return s.toUpperCase(locale); if ( formatString.equals("lower") ) return s.toLowerCase(locale); if ( formatString.equals("cap") ) { return (s.length() > 0) ? Character.toUpperCase(s.charAt(0))+s.substring(1) : s; } if ( formatString.equals("url-encode") ) { try { return URLEncoder.encode(s, "UTF-8"); } catch (UnsupportedEncodingException ex) { // UTF-8 is standard, should always be available } } if ( formatString.equals("xml-encode") ) { return escapeHTML(s); } return String.format(locale, formatString, s); }