package com.spun.util.parser; import java.io.File; import com.spun.util.StringUtils; public class TemplateStringUtils { public static TemplateStringUtils INSTANCE = new TemplateStringUtils(); /************************************************************************/ private TemplateStringUtils() { } /***********************************************************************/ public String truncate(String onString, int maxLength) { return truncate(onString, maxLength, new String[]{}); } /***********************************************************************/ public String plural(int number, String singular, String plural) { return String.format("%s %s", number, (number == 1 ? singular:plural)); } /***********************************************************************/ public String truncate(String onString, int maxLength, String minus1, String minus2) { return truncate(onString, maxLength, new String[]{"", "", minus1, minus2}); } /***********************************************************************/ public String truncate(String onString, int maxLength, String minus1) { return truncate(onString, maxLength, new String[]{"", "", minus1}); } /***********************************************************************/ private String truncate(String onString, int maxLength, String minus[]) { if (onString == null || onString.equals("null")) { return ""; } for (int i = 2; i < minus.length; i++) { maxLength -= minus[i] != null ? minus[i].length() : 0; } maxLength = (maxLength < 0) ? 0 : maxLength; return StringUtils.truncate(onString, maxLength); } /************************************************************************/ public static String clearNull(String value) { return clearNull(value, ""); } /************************************************************************/ public static String clearNull(Object value, String replacingValue) { return (("null".equals(value) || value == null) ? replacingValue : value.toString()); } /************************************************************************/ /** * Compare if arg [0] equals any other argument starting at [1]. * @param params * @return **/ private boolean isIn(String[] params) { for (int i = 1; i < params.length; i++) { if (params[0].equals(params[i])) { return true; } } return false; } /************************************************************************/ /** * Compare if arg [0] equals any other argument starting at [1]. * @param params * @return **/ public static boolean isIn(String compare, String inParameter1, String inParameter2) { return StringUtils.isIn(compare, new String[]{inParameter1, inParameter2}); } /***********************************************************************/ public static boolean isIn(String compare, String inParameter1) { return StringUtils.isIn(compare, new String[]{inParameter1}); } /***********************************************************************/ public static String pad(String original, int length, String paddingCharacter) { original = original == null ? "" : original; int paddingNeeded = length - original.length(); StringBuffer buffer = new StringBuffer(original); for (int i = 0; i < paddingNeeded; i++) { buffer.append(paddingCharacter); } return buffer.toString(); } /***********************************************************************/ private boolean isNull(String main) { return !StringUtils.isNonZero(clearNull(main)); } /***********************************************************************/ public String getFileName(String fileName) { return fileName.substring(fileName.lastIndexOf(File.separatorChar) + 1); } /***********************************************************************/ public static String formatExcelString(String in) { if ("0".equals(in) || "null".equals(in) || in == null) // So that null's & int(0) show up empty { return "\"\""; } else if (in.indexOf('\"') == -1) { return '\"' + in + '\"'; } else { StringBuffer buffer = new StringBuffer(); buffer.append('\"'); for (int i = 0; i < in.length(); i++) { char c = in.charAt(i); buffer.append((c == '\"') ? "\"\"" : "" + c); } buffer.append('\"'); return buffer.toString(); } } /************************************************************************/ public static int getLength(String s) { return s == null ? 0 : s.length(); } /************************************************************************/ public String toHTMLEncode(String string) { return StringUtils.toHTMLEncode(clearNull(string)); } /************************************************************************/ public String toURLEncode(String string) { return StringUtils.toURLEncode(clearNull(string)); } /************************************************************************/ public static String toJavaScriptEncode(String string) { return StringUtils.toJavaScriptEncode(clearNull(string, null)); } /************************************************************************/ public static String toJavaScriptEncode(Number n) { return n == null ? "null" : n.toString(); } /************************************************************************/ public static String toJavaScriptEncode(Object n) { if (n == null) { return "null"; } else if (n instanceof Number) { return toJavaScriptEncode((Number) n); } else { return toJavaScriptEncode(n.toString()); } } public static String asXml(String s) { return StringUtils.escapeForXml(s); } /************************************************************************/ /************************************************************************/ }