protected MustacheException valueNotAFormattableObject(Object value, MustacheTagInfo tagInfo) { return new MustacheException( MustacheProblem.RENDER_HELPER_INVALID_OPTIONS, "Value is not a formattable object [value: %s, template: %s, line: %s]", value, tagInfo.getTemplateName(), tagInfo.getLine()); }
protected MustacheException unknownStyle(String style, MustacheTagInfo tagInfo) { return new MustacheException( MustacheProblem.RENDER_HELPER_INVALID_OPTIONS, "Unknown style defined %s [template: %s, line: %s]", style, tagInfo.getTemplateName(), tagInfo.getLine()); }
@Override public void validate(HelperDefinition definition) { super.validate(definition); if (definition.getParameters().size() == 1) { LOGGER.warn( "{} is not really useful for single parameter [template: {}, line: {}]", getClass().getSimpleName(), definition.getTagInfo().getTemplateName(), definition.getTagInfo().getLine()); } }
static BigDecimal getDecimal(Object value, Options options) { BigDecimal decimal; if (value instanceof BigDecimal) { decimal = (BigDecimal) value; } else if (value instanceof BigInteger) { decimal = new BigDecimal((BigInteger) value); } else if (value instanceof Long) { decimal = new BigDecimal((Long) value); } else if (value instanceof Integer) { decimal = new BigDecimal((Integer) value); } else if (value instanceof Double) { decimal = new BigDecimal((Double) value); } else if (value instanceof String) { decimal = new BigDecimal(value.toString()); } else { throw new MustacheException( MustacheProblem.RENDER_HELPER_INVALID_OPTIONS, "Parameter is not valid [param: %s, helper: %s, template: %s, line: %s]", value, NumericExpressionHelper.class.getName(), options.getTagInfo().getTemplateName(), options.getTagInfo().getLine()); } return decimal; }
@Override public void execute(Options options) { String message = options.getParameters().get(0).toString(); if (appendTemplateInfo) { StringBuilder builder = new StringBuilder(message); builder.append(" ["); builder.append(options.getTagInfo().getTemplateName()); builder.append(":"); builder.append(options.getTagInfo().getLine()); builder.append("]"); message = builder.toString(); } adapter.log(getLevel(options.getHash()), message, getMessageParams(options.getParameters())); }
@Override public Object handle(MustacheTagInfo info) { throw new MustacheException( MustacheProblem.RENDER_NO_VALUE, "No value for the given key found: %s [template: %s, line: %s]", info.getText(), info.getTemplateName(), info.getLine()); }
public static MustacheException newInvalidFlowException(MustacheTagInfo tagInfo) { return new MustacheException( MustacheProblem.RENDER_HELPER_INVALID_OPTIONS, MESSAGE_INVALID_FLOW, tagInfo.getText(), tagInfo.getTemplateName(), tagInfo.getLine()); }
public static MustacheException newValidationException(String msg, Class<? extends Helper> helperClazz, HelperDefinition definition) { return new MustacheException( MustacheProblem.COMPILE_HELPER_VALIDATION_FAILURE, msg + " [helper: %s, template: %s, line: %s]", helperClazz.getName(), definition.getTagInfo().getTemplateName(), definition.getTagInfo().getLine()); }
void release() { if (valueWrappers != null) { int wrappersSize = valueWrappers.size(); if (wrappersSize == 1) { valueWrappers.get(0).release(); } else if (wrappersSize > 1) { for (ValueWrapper wrapper : valueWrappers) { wrapper.release(); } } } if (pushed > 0) { LOGGER.info( "{} remaining objects pushed on the context stack will be automatically garbage collected [helperName: {}, template: {}]", pushed, splitHelperName(segment.getTagInfo().getText(), segment).next(), segment.getTagInfo().getTemplateName()); } }
"Cache fragment will not be automatically updated [helper: {}, template: {}, line: {}]", getClass().getName(), definition.getTagInfo().getTemplateName(), definition.getTagInfo().getLine());
/** * * @param helperClazz * @param definition * @param paramSize * @throws MustacheException * If the helper expects more params */ public static void checkParams(Class<? extends Helper> helperClazz, HelperDefinition definition, int paramSize) { Checker.checkArgumentNotNull(definition); Checker.checkArgument(paramSize >= 0, "Helper may only require zero or more params"); int size = definition.getParameters().size(); if (size < paramSize) { throw newValidationException(String.format( "Insufficient number of parameters - expected: %s, current: %s", paramSize, size), helperClazz, definition); } if (size > paramSize) { LOGGER.trace( "{} superfluous parameters detected [helper: {}, template: {}, line: {}]", size - paramSize, helperClazz.getName(), definition.getTagInfo().getTemplateName(), definition.getTagInfo().getLine()); } }
/** * * @param helperClazz * @param definition * @param hashSize * @throws MustacheException * If the helper expects more hash entries */ public static void checkHash(Class<? extends Helper> helperClazz, HelperDefinition definition, int hashSize) { Checker.checkArgumentNotNull(definition); Checker.checkArgument(hashSize >= 0, "Helper may only require zero or more hash entries"); int size = definition.getHash().size(); if (size < hashSize) { throw newValidationException(String.format( "Insufficient number of hash entries - expected: %s, current: %s", hashSize, size), helperClazz, definition); } if (size > hashSize) { LOGGER.trace( "{} superfluous hash entries detected [helper: {}, template: {}, line: {}]", size - hashSize, helperClazz.getName(), definition.getTagInfo().getTemplateName(), definition.getTagInfo().getLine()); } }
@Override public void validate(HelperDefinition definition) { super.validate(definition); Operator operator; Object value = definition.getHash().get(OPERATOR); if (value == null) { operator = Operator.EQ; } else if (value instanceof ValuePlaceholder) { // Operator set dynamically operator = null; } else { operator = Operator.from(value.toString()); } if (operator != null && operator.getMinParams() > definition .getParameters().size()) { throw new MustacheException( MustacheProblem.COMPILE_HELPER_VALIDATION_FAILURE, "Operator requires more parameters [helper: %s, template: %s, line: %s]", this.getClass().getName(), definition.getTagInfo().getTemplateName(), definition.getTagInfo().getLine()); } }
"Unsupported hash key detected [key: {}, helper: {}, template: {}, line: {}]", key, helper.getClass().getName(), definition.getTagInfo().getTemplateName(), definition.getTagInfo().getLine());
@Override public void execute(Options options) { Object param = options.getParameters().get(0); if (param instanceof Number) { if (isMatching((Number) param)) { if (isSection(options)) { options.fn(); } else { if (options.getParameters().size() > 1) { convertAndAppend(options, options.getParameters().get(1)); } else { throw new MustacheException( MustacheProblem.RENDER_HELPER_INVALID_OPTIONS, "Invalid number of params for variable tag [params: %s, template: %s, line: %s]", options.getParameters().size(), options .getTagInfo().getTemplateName(), options.getTagInfo().getLine()); } } } else { if (isVariable(options) && options.getParameters().size() > 2) { convertAndAppend(options, options.getParameters().get(2)); } } } }
@Override public void execute(Options options) { Operator operator = initOperator(options); if (operator.getMinParams() > options.getParameters().size()) { // We need this check because the operator may be set dynamically throw new MustacheException( MustacheProblem.RENDER_HELPER_INVALID_OPTIONS, "More parameters required [helper: %s, template: %s, line: %s]", NumericExpressionHelper.class.getName(), options.getTagInfo().getTemplateName(), options.getTagInfo().getLine()); } boolean result = operator.evaluate(options); if (result) { if (isSection(options)) { options.fn(); } else { String output; Object outputValue = options.getHash().get(OUTPUT); output = outputValue != null ? convertValue(outputValue) : Boolean.TRUE.toString(); append(options, output); } } }
@Override public void execute(Options options) { Object param = options.getParameters().get(0); if (param == null) { throw new MustacheException( MustacheProblem.RENDER_HELPER_INVALID_OPTIONS, "PrettyTimeHelper - no instance to format [template: %s, line: %s, param: %s]", options.getTagInfo().getTemplateName(), options.getTagInfo().getLine()); } Date value = converter.convert(param); if (value == null) { throw new MustacheException( MustacheProblem.RENDER_HELPER_INVALID_OPTIONS, "Unable to get java.util.Date instance for PrettyTime [template: %s, line: %s, param: %s]", options.getTagInfo().getTemplateName(), options.getTagInfo().getLine(), param); } append(options, prettyTimeCache.get(getLocale(options)).format(value)); }