public int _length(String args[]) throws Exception { verifyCommand(args, _length, null, 1, 2); if (args.length == 1) return 0; return args[1].length(); }
public int _compare(String args[]) throws Exception { verifyCommand(args, _compare, null, 3, 3); int n = args[1].compareTo(args[2]); if (n == 0) return 0; return n > 0 ? 1 : -1; }
public String _env(String args[]) { verifyCommand(args, "${env;<name>}, get the environmet variable", null, 2, 2); try { return System.getenv(args[1]); } catch (Throwable t) { return null; } }
public String _extension(String args[]) throws Exception { verifyCommand(args, _extension, null, 2, 2); String name = args[1]; int n = name.indexOf('.'); if (n < 0) return ""; return name.substring(n + 1); }
public boolean _isempty(String args[]) throws Exception { verifyCommand(args, _isempty, null, 1, Integer.MAX_VALUE); for (int i = 1; i < args.length; i++) if (!args[i].trim() .isEmpty()) return false; return true; }
public boolean _isnumber(String args[]) throws Exception { verifyCommand(args, _isnumber, null, 2, Integer.MAX_VALUE); for (int i = 1; i < args.length; i++) if (!NUMERIC_P.matcher(args[i]) .matches()) return false; return true; }
public Object _now(String args[]) { verifyCommand(args, _nowHelp, null, 1, 2); Date now = new Date(); if (args.length == 2) { if ("long".equals(args[1])) return now.getTime(); DateFormat df = new SimpleDateFormat(args[1], Locale.US); df.setTimeZone(TimeZone.getTimeZone("UTC")); return df.format(now); } return now; }
public String _first(String args[]) throws Exception { verifyCommand(args, _first, null, 1, Integer.MAX_VALUE); List<String> list = toList(args, 1, args.length); if (list.isEmpty()) return ""; return list.get(0); }
public String _last(String args[]) throws Exception { verifyCommand(args, _last, null, 1, Integer.MAX_VALUE); List<String> list = toList(args, 1, args.length); if (list.isEmpty()) return ""; return list.get(list.size() - 1); }
public String _split(String args[]) throws Exception { verifyCommand(args, _split, null, 2, Integer.MAX_VALUE); List<String> collected = new ArrayList<>(); for (int n = 2; n < args.length; n++) { String value = args[n]; String[] split = value.split(args[1]); for (String s : split) if (!s.isEmpty()) collected.add(s); } return Processor.join(collected); }
String filter(String[] args, boolean include) { verifyCommand(args, String.format(_filterHelp, args[0]), null, 3, 3); Collection<String> list = toCollection(args[1]); Pattern pattern = Pattern.compile(args[2]); list.removeIf(s -> pattern.matcher(s) .matches() == include); return Processor.join(list); }
public String _average(String args[]) throws Exception { verifyCommand(args, _sum, null, 2, Integer.MAX_VALUE); List<String> list = toList(args, 1, args.length); if (list.isEmpty()) throw new IllegalArgumentException("No members in list to calculate average"); double d = 0; for (String s : list) { double v = Double.parseDouble(s); d += v; } return toString(d / list.size()); }
public String _nmax(String args[]) throws Exception { verifyCommand(args, _nmax, null, 2, Integer.MAX_VALUE); List<String> list = toList(args, 1, args.length); double d = Double.NaN; for (String s : list) { double v = Double.parseDouble(s); if (Double.isNaN(d) || v > d) d = v; } return toString(d); }
public String _sort(String args[]) { verifyCommand(args, _sortHelp, null, 2, Integer.MAX_VALUE); List<String> result = new ArrayList<String>(); for (int i = 1; i < args.length; i++) { Processor.split(args[i], result); } Collections.sort(result); return Processor.join(result); }
public String _sum(String args[]) throws Exception { verifyCommand(args, _sum, null, 2, Integer.MAX_VALUE); List<String> list = toList(args, 1, args.length); double d = 0; for (String s : list) { double v = Double.parseDouble(s); d += v; } return toString(d); }
public String _uniq(String args[]) { verifyCommand(args, _uniqHelp, null, 1, Integer.MAX_VALUE); Set<String> set = new LinkedHashSet<String>(); for (int i = 1; i < args.length; i++) { Processor.split(args[i], set); } return Processor.join(set, ","); }
public String _join(String args[]) { verifyCommand(args, _joinHelp, null, 1, Integer.MAX_VALUE); List<String> result = new ArrayList<String>(); for (int i = 1; i < args.length; i++) { Processor.split(args[i], result); } return Processor.join(result); }
public String _uniq(String args[]) { verifyCommand(args, _uniqHelp, null, 1, Integer.MAX_VALUE); Set<String> set = new LinkedHashSet<>(); for (int i = 1; i < args.length; i++) { Processor.split(args[i], set); } return Processor.join(set, ","); }
public String _join(String args[]) { verifyCommand(args, _joinHelp, null, 1, Integer.MAX_VALUE); List<String> result = new ArrayList<>(); for (int i = 1; i < args.length; i++) { Processor.split(args[i], result); } return Processor.join(result); }
public String _foreach(String args[]) throws Exception { verifyCommand(args, _foreach, null, 2, Integer.MAX_VALUE); String macro = args[1]; List<String> list = toList(args, 2, args.length); List<String> result = new ArrayList<>(); int n = 0; for (String s : list) { String invoc = process("${" + macro + ";" + s + ";" + n++ + "}"); result.add(invoc); } return Processor.join(result); }