@Override public Object filter(Object var, JinjavaInterpreter interpreter, String... args) { float defaultVal = 0; if (args.length > 0) { defaultVal = NumberUtils.toFloat(args[0], 0.0f); } if (var == null) { return defaultVal; } if (Float.class.isAssignableFrom(var.getClass())) { return var; } if (Number.class.isAssignableFrom(var.getClass())) { return ((Number) var).floatValue(); } String input = var.toString(); Locale locale = interpreter.getConfig().getLocale(); NumberFormat numberFormat = NumberFormat.getNumberInstance(locale); ParsePosition pp = new ParsePosition(0); float result; try { result = numberFormat.parse(input, pp).floatValue(); } catch (Exception e) { result = defaultVal; } if (pp.getErrorIndex() != -1 || pp.getIndex() != input.length()) { result = defaultVal; } return result; }
@Override public Object filter(Object var, JinjavaInterpreter interpreter, String... args) { int defaultVal = 0; if (args.length > 0) { defaultVal = NumberUtils.toInt(args[0], 0); } if (var == null) { return defaultVal; } if (Number.class.isAssignableFrom(var.getClass())) { return ((Number) var).intValue(); } String input = var.toString().trim(); Locale locale = interpreter.getConfig().getLocale(); NumberFormat numberFormat = NumberFormat.getNumberInstance(locale); ParsePosition pp = new ParsePosition(0); int result; try { result = numberFormat.parse(input, pp).intValue(); } catch (Exception e) { result = defaultVal; } if (pp.getErrorIndex() != -1 || pp.getIndex() != input.length()) { result = defaultVal; } return result; }
private static DateTimeFormatter getFormatter(JinjavaInterpreter interpreter, FormattedDate d) { if (!StringUtils.isBlank(d.getFormat())) { try { return StrftimeFormatter.formatter(d.getFormat(), interpreter.getConfig().getLocale()); } catch (IllegalArgumentException e) { interpreter.addError(new TemplateError(ErrorType.WARNING, ErrorReason.SYNTAX_ERROR, ErrorItem.OTHER, e.getMessage(), null, interpreter.getLineNumber(), -1, null, BasicTemplateErrorCategory.UNKNOWN_DATE, ImmutableMap.of("date", d.getDate().toString(), "exception", e.getMessage(), "lineNumber", String.valueOf(interpreter.getLineNumber())))); } } return DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM); }