@Override TemplateModel _eval(Environment env) throws TemplateException { SimpleSequence list = new SimpleSequence(items.size()); for (Iterator it = items.iterator(); it.hasNext(); ) { Expression exp = (Expression) it.next(); TemplateModel tm = exp.eval(env); if (env == null || !env.isClassicCompatible()) { exp.assertNonNull(tm, env); } list.add(tm); } return list; }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel leftModel = target.eval(env); if (leftModel instanceof TemplateHashModel) { return ((TemplateHashModel) leftModel).get(key); } if (leftModel == null && env.isClassicCompatible()) { return null; // ${noSuchVar.foo} has just printed nothing in FM 1. } throw new NonHashException(target, leftModel, env); }
if (isClassicCompatible() /* FM1 only had absolute names */ || baseName == null) { return targetName;
/** * @param expr {@code null} is allowed, but may results in less helpful error messages * @param env {@code null} is allowed, but may results in lower performance in classic-compatible mode */ static String modelToString(TemplateScalarModel model, Expression expr, Environment env) throws TemplateModelException { String value = model.getAsString(); if (value == null) { if (env == null) env = Environment.getCurrentEnvironment(); if (env != null && env.isClassicCompatible()) { return ""; } else { throw newModelHasStoredNullException(String.class, model, expr); } } return value; }
boolean acceptWithResult(Environment env) throws TemplateException, IOException { TemplateModel listedValue = listedExp.eval(env); if (listedValue == null) { if (env.isClassicCompatible()) { listedValue = Constants.EMPTY_SEQUENCE; } else { listedExp.assertNonNull(null, env); } } return env.visitIteratorBlock(new IterationContext(listedValue, loopVarName, loopVar2Name)); }
String key = keyExp.evalAndCoerceToPlainText(env); TemplateModel value = valExp.eval(env); if (env == null || !env.isClassicCompatible()) { valExp.assertNonNull(value, env); String key = keyExp.evalAndCoerceToPlainText(env); TemplateModel value = valExp.eval(env); if (env == null || !env.isClassicCompatible()) { valExp.assertNonNull(value, env);
private boolean modelToBoolean(TemplateModel model, Environment env, Configuration cfg) throws TemplateException { if (model instanceof TemplateBooleanModel) { return ((TemplateBooleanModel) model).getAsBoolean(); } else if (env != null ? env.isClassicCompatible() : cfg.isClassicCompatible()) { return model != null && !isEmpty(model); } else { throw new NonBooleanException(this, model, env); } }
TemplateModel targetModel = target.eval(env); if (targetModel == null) { if (env.isClassicCompatible()) { return null; } else { if (env.isClassicCompatible()) { keyModel = TemplateScalarModel.EMPTY_STRING; } else {
} else if (!env.isClassicCompatible()) { boolean argWasSpecified = localVars.containsKey(argName); throw new _MiscTemplateException(env, if (firstReferenceException != null) { throw firstReferenceException; } else if (!env.isClassicCompatible()) { throw InvalidReferenceException.getInstance(firstUnresolvedExpression, env);
return modelToString((TemplateScalarModel) tm, exp, env); } else if (tm == null) { if (env.isClassicCompatible()) { return ""; } else { if (env.isClassicCompatible() && tm instanceof BeanModel) { return _BeansAPI.getAsClassicCompatibleString((BeanModel) tm);
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel model = target.eval(env); if (model instanceof TemplateNumberModel) { return new NumberFormatter((TemplateNumberModel) model, env); } else if (model instanceof TemplateDateModel) { TemplateDateModel dm = (TemplateDateModel) model; return new DateFormatter(dm, env); } else if (model instanceof SimpleScalar) { return model; } else if (model instanceof TemplateBooleanModel) { return new BooleanFormatter((TemplateBooleanModel) model, env); } else if (model instanceof TemplateScalarModel) { return new SimpleScalar(((TemplateScalarModel) model).getAsString()); } else if (env.isClassicCompatible() && model instanceof BeanModel) { return new SimpleScalar(_BeansAPI.getAsClassicCompatibleString((BeanModel) model)); } else { throw new UnexpectedTypeException( target, model, "number, date, boolean or string", new Class[] { TemplateNumberModel.class, TemplateDateModel.class, TemplateBooleanModel.class, TemplateScalarModel.class }, env); } } }
value = valueExp.eval(env); if (value == null) { if (env.isClassicCompatible()) { value = TemplateScalarModel.EMPTY_STRING; } else { if (env.isClassicCompatible()) { lhoValue = TemplateScalarModel.EMPTY_STRING; } else { if (env.isClassicCompatible()) { value = TemplateScalarModel.EMPTY_STRING; } else {
Environment env) throws TemplateException { if (leftValue == null) { if (env != null && env.isClassicCompatible()) { leftValue = TemplateScalarModel.EMPTY_STRING; } else { if (env != null && env.isClassicCompatible()) { rightValue = TemplateScalarModel.EMPTY_STRING; } else { boolean rightBool = ((TemplateBooleanModel) rightValue).getAsBoolean(); cmpResult = (leftBool ? 1 : 0) - (rightBool ? 1 : 0); } else if (env.isClassicCompatible()) { String leftSting = leftExp.evalAndCoerceToPlainText(env); String rightString = rightExp.evalAndCoerceToPlainText(env);
} else if (env.isClassicCompatible()) { listNotEmpty = true; if (loopVarName != null) {
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel leftModel = target.eval(env); if (leftModel instanceof TemplateHashModel) { return ((TemplateHashModel) leftModel).get(key); } if (leftModel == null && env.isClassicCompatible()) { return null; // ${noSuchVar.foo} has just printed nothing in FM 1. } throw new NonHashException(target, leftModel, env); }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel leftModel = target.eval(env); if (leftModel instanceof TemplateHashModel) { return ((TemplateHashModel) leftModel).get(key); } if (leftModel == null && env.isClassicCompatible()) { return null; // ${noSuchVar.foo} has just printed nothing in FM 1. } throw new NonHashException(target, leftModel, env); }
boolean acceptWithResult(Environment env) throws TemplateException, IOException { TemplateModel listedValue = listedExp.eval(env); if (listedValue == null) { if (env.isClassicCompatible()) { listedValue = Constants.EMPTY_SEQUENCE; } else { listedExp.assertNonNull(null, env); } } return env.visitIteratorBlock(new IterationContext(listedValue, loopVarName, loopVar2Name)); }
private boolean modelToBoolean(TemplateModel model, Environment env, Configuration cfg) throws TemplateException { if (model instanceof TemplateBooleanModel) { return ((TemplateBooleanModel) model).getAsBoolean(); } else if (env != null ? env.isClassicCompatible() : cfg.isClassicCompatible()) { return model != null && !isEmpty(model); } else { throw new NonBooleanException(this, model, env); } }
void accept(Environment env) throws TemplateException, IOException { TemplateModel baseModel = listExpression.getAsTemplateModel(env); if (baseModel == null) { if (env.isClassicCompatible()) { // Classic behavior of simply ignoring null references. return; } assertNonNull(baseModel, listExpression, env); } env.visit(new Context(baseModel)); }
private boolean modelToBoolean(TemplateModel model, Environment env, Configuration cfg) throws TemplateException { if (model instanceof TemplateBooleanModel) { return ((TemplateBooleanModel) model).getAsBoolean(); } else if (env != null ? env.isClassicCompatible() : cfg.isClassicCompatible()) { return model != null && !isEmpty(model); } else { throw new NonBooleanException(this, model, env); } }