package pablotron.luigi; import java.util.Map; import java.util.HashMap; public final class Filter { public interface Handler { public String filter(String val, String args[], Map row); }; public static Map FILTERS = new HashMap() {{ put("null", new Handler() { public String filter(String val, String args[], Map row) { return ""; } }); put("s", new Handler() { public String filter(String val, String args[], Map row) { int v = Integer.parseInt(val); return (v == 1) ? "" : "s"; } }); put("uc", new Handler() { public String filter(String val, String args[], Map row) { return val.toUpperCase(); } }); put("lc", new Handler() { public String filter(String val, String args[], Map row) { return val.toLowerCase(); } }); put("length", new Handler() { public String filter(String val, String args[], Map row) { return Integer.toString(val.length()); } }); put("trim", new Handler() { public String filter(String val, String args[], Map row) { return val.trim(); } }); put("h", new Handler() { public String filter(String val, String args[], Map row) { StringBuilder r = new StringBuilder(val.length()); for (int i = 0, l = val.length(); i < l; i++) { char c = val.charAt(i); switch (c) { case '&': r.append("&"); break; case '<': r.append("<"); break; case '>': r.append(">"); break; case '\'': r.append("'"); break; case '"': r.append("""); break; default: r.append(c); } } return r.toString(); /* * return val * .replace("&", "&") * .replace("<", "<") * .replace(">", ">") * .replace("'", "'") * .replace("\"", """); */ } }); }}; };