@Override public Object filter(Object var, JinjavaInterpreter interpreter, String... args) { try { return OBJECT_MAPPER.writeValueAsString(var); } catch (JsonProcessingException e) { throw new InterpretException("Could not write object as string for `tojson` filter.", e, interpreter.getLineNumber()); } }
@Override public Object filter(Object var, JinjavaInterpreter interpreter, String... args) { try { if (var instanceof String) { return OBJECT_MAPPER.readValue((String) var, HashMap.class); } else { throw new InterpretException(String.format("%s filter requires a string parameter", getName())); } } catch (IOException e) { throw new InterpretException("Could not convert JSON string to object in `fromjson` filter.", e, interpreter.getLineNumber()); } }
private static Locale getLocale(JinjavaInterpreter interpreter, FormattedDate d) { if (!StringUtils.isBlank(d.getLanguage())) { try { return LocaleUtils.toLocale(d.getLanguage()); } catch (IllegalArgumentException e) { interpreter.addError(new TemplateError(ErrorType.WARNING, ErrorReason.SYNTAX_ERROR, ErrorItem.OTHER, e.getMessage(), null, interpreter.getLineNumber(), -1, null, BasicTemplateErrorCategory.UNKNOWN_LOCALE, ImmutableMap.of("date", d.getDate().toString(), "exception", e.getMessage(), "lineNumber", String.valueOf(interpreter.getLineNumber())))); } } return Locale.US; }
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); }
@Override public Object filter(Object var, JinjavaInterpreter interpreter, String... args) { if (args.length == 0) { throw new InterpretException(getName() + " requires an attr name to use", interpreter.getLineNumber()); } return interpreter.resolveProperty(var, args[0]); }
@Override public Object filter(Object var, JinjavaInterpreter interpreter, String... args) { if (args.length == 0) { throw new InterpretException(getName() + " requires an attr name to group on", interpreter.getLineNumber()); } String attr = args[0]; ForLoop loop = ObjectIterator.getLoop(var); Multimap<String, Object> groupBuckets = LinkedListMultimap.create(); Map<String, Object> groupMapRaw = new HashMap<>(); while (loop.hasNext()) { Object val = loop.next(); Object resolvedProperty = interpreter.resolveProperty(val, attr); String grouper = Objects.toString(resolvedProperty); groupBuckets.put(grouper, val); if (!groupMapRaw.containsKey(grouper)) { groupMapRaw.put(grouper, resolvedProperty); } } List<Group> groups = new ArrayList<>(); for (String grouper : groupBuckets.keySet()) { List<Object> list = Lists.newArrayList(groupBuckets.get(grouper)); groups.add(new Group(grouper, groupMapRaw.get(grouper), list)); } return groups; }
@Override public Object filter(Object var, JinjavaInterpreter interpreter, Object[] args, Map<String, Object> kwargs) { List<Object> result = new ArrayList<>(); if (args.length == 0) { throw new InterpretException(getName() + " requires an exp test to filter on", interpreter.getLineNumber()); } Object[] expArgs = new Object[]{}; if (args.length > 1) { expArgs = Arrays.copyOfRange(args, 1, args.length); } ExpTest expTest = interpreter.getContext().getExpTest(args[0].toString()); if (expTest == null) { throw new InterpretException("No exp test defined for name '" + args[0] + "'", interpreter.getLineNumber()); } ForLoop loop = ObjectIterator.getLoop(var); while (loop.hasNext()) { Object val = loop.next(); if (expTest.evaluate(val, interpreter, expArgs)) { result.add(val); } } return result; }
@Override public Object filter(Object var, JinjavaInterpreter interpreter, String... args) { List<Object> result = new ArrayList<>(); if (args.length == 0) { throw new InterpretException(getName() + " requires an exp test to filter on", interpreter.getLineNumber()); } ExpTest expTest = interpreter.getContext().getExpTest(args[0]); if (expTest == null) { throw new InterpretException("No exp test defined for name '" + args[0] + "'", interpreter.getLineNumber()); } ForLoop loop = ObjectIterator.getLoop(var); while (loop.hasNext()) { Object val = loop.next(); if (!expTest.evaluate(val, interpreter)) { result.add(val); } } return result; }
if (base == null) { value = interpreter.retraceVariable((String) property, interpreter.getLineNumber(), -1); } else { interpreter.addError(TemplateError.fromUnknownProperty(base, propertyName, interpreter.getLineNumber(), -1)); interpreter.addError(new TemplateError(ErrorType.FATAL, ErrorReason.DISABLED, item, e.getMessage(), propertyName, interpreter.getLineNumber(), -1, e));
@Override public Object filter(Object var, JinjavaInterpreter interpreter, String... args) { ForLoop loop = ObjectIterator.getLoop(var); if (args.length == 0) { throw new InterpretException(getName() + " requires number of slices argument", interpreter.getLineNumber()); } int slices = NumberUtils.toInt(args[0], 3); return Iterators.paddedPartition(loop, slices); }
throw new InterpretException(getName() + " filter requires an attr to filter on", interpreter.getLineNumber()); throw new InterpretException(getName() + " filter requires the filter attr arg to be a string", interpreter.getLineNumber()); throw new InterpretException(getName() + " filter requires the expression test arg to be a string", interpreter.getLineNumber()); throw new InterpretException("No expression test defined with name '" + args[1] + "'", interpreter.getLineNumber());
interpreter.addError(new TemplateError(ErrorType.WARNING, ErrorReason.UNKNOWN, ErrorItem.PROPERTY, e.getMessage(), "", interpreter.getLineNumber(), interpreter.getPosition(), e, BasicTemplateErrorCategory.UNKNOWN, ImmutableMap.of("exception", e.getMessage()))); } catch (TreeBuilderException e) { "Error parsing '" + expression + "': " + errorMessage, interpreter.getLineNumber(), position, e))); } catch (ELException e) { interpreter.addError(TemplateError.fromException(new TemplateSyntaxException(expression, e.getMessage(), interpreter.getLineNumber(), e))); } catch (DisabledException e) { interpreter.addError(new TemplateError(ErrorType.FATAL, ErrorReason.DISABLED, ErrorItem.FUNCTION, e.getMessage(), expression, interpreter.getLineNumber(), interpreter.getPosition(), e)); } catch (UnknownTokenException e) { } catch (Exception e) { interpreter.addError(TemplateError.fromException(new InterpretException( String.format("Error resolving expression [%s]: " + getRootCauseMessage(e), expression), e, interpreter.getLineNumber(), interpreter.getPosition())));
String.format("Result of %s filter has been truncated to the max String length of %d", getName(), interpreter.getConfig().getMaxStringLength()), null, interpreter.getLineNumber(), interpreter.getPosition(), ex));
"Rendering cycle detected: '" + renderStr + "'", null, getLineNumber(), node.getStartPosition(), null, BasicTemplateErrorCategory.IMPORT_CYCLE_DETECTED, ImmutableMap.of("string", renderStr))); output.addNode(new RenderedOutputNode(renderStr));
e.getMessage(), tagToken.getTagName(), interpreter.getLineNumber(), tagToken.getStartPosition(), e)); return null;