@JtwigFunction(name = "last") public Object last (@Parameter Map input) { if (input.isEmpty()) return null; Iterator iterator = input.keySet().iterator(); Object key = iterator.next(); while (iterator.hasNext()) key = iterator.next(); return input.get(key); } }
@JtwigFunction(name = "concat", aliases = { "concatenate" }) public String concatenate (@Parameter String... pieces) { StringBuilder builder = new StringBuilder(); for (String piece : pieces) { if (piece != null) builder.append(piece); } return builder.toString(); }
@JtwigFunction(name = "sort") public List sort (@Parameter List input) { Collections.sort(input); return input; }
@JtwigFunction(name = "abs") public Double abs (@Parameter Double input) { return Math.abs(input); } @JtwigFunction(name = "abs")
@JtwigFunction(name = "length") public int length (@Parameter Object input) { if (input instanceof String) return ((String) input).length(); else return 1; }
@JtwigFunction(name = "toInt") public Integer toInt (@Parameter Object input) { if (input instanceof Number) return ((Number) input).intValue(); return Integer.parseInt(input.toString()); } }
@JtwigFunction(name = "length") public int length (@Parameter Iterable input) { Iterator iterator = input.iterator(); int count = 0; while (iterator.hasNext()) { iterator.next(); count++; } return count; }
@JtwigFunction(name = "abs") public Long abs (@Parameter Long input) { return Math.abs(input); } @JtwigFunction(name = "abs")
@JtwigFunction(name = "abs") public Integer abs (@Parameter Integer input) { return Math.abs(input); } @JtwigFunction(name = "round")
@JtwigFunction(name = "round") public int round (@Parameter Double input, @Parameter String strategy) { switch (RoundStrategy.valueOf(strategy.toUpperCase())) { case CEIL: return (int) Math.ceil(input); case FLOOR: return (int) Math.floor(input); default: return (int) Math.round(input); } } @JtwigFunction(name = "round")
@JtwigFunction(name = "iterable") public boolean iterable(@Parameter Object input) { return input instanceof Iterable || input.getClass().isArray() || input instanceof Map; }
@JtwigFunction(name = "url_encode") public String urlEncode (@Parameter String input) throws UnsupportedEncodingException { return URLEncoder.encode(input, Charset.defaultCharset().displayName()); } @JtwigFunction(name = "url_encode")
@JtwigFunction(name = "first") public Object first (@Parameter Map input) { if (input.isEmpty()) return null; return input.get(input.keySet().iterator().next()); } @JtwigFunction(name = "last")
@JtwigFunction(name = "abs") public Float abs (@Parameter Float input) { return Math.abs(input); } @JtwigFunction(name = "abs")