/** * @deprecated At the moment FreeMarker has no API for this with backward-compatibility promises. */ @Deprecated public final TemplateModel getAsTemplateModel(Environment env) throws TemplateException { return eval(env); }
TemplateModel evalToNonMissing(Environment env) throws TemplateException { TemplateModel result = this.eval(env); assertNonNull(result, env); return result; }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel tm = target.eval(env); target.assertNonNull(tm, env); return (tm instanceof TemplateHashModel) ? TemplateBooleanModel.TRUE : TemplateBooleanModel.FALSE; } }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel tm = target.eval(env); target.assertNonNull(tm, env); return (tm instanceof TemplateNumberModel) ? TemplateBooleanModel.TRUE : TemplateBooleanModel.FALSE; } }
/** * @param seqTip Tip to display if the value type is not coercable, but it's sequence or collection. */ String evalAndCoerceToPlainText(Environment env, String seqTip) throws TemplateException { return EvalUtil.coerceModelToPlainText(eval(env), this, seqTip, env); }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel tm = target.eval(env); target.assertNonNull(tm, env); return (tm instanceof TemplateSequenceModel) ? TemplateBooleanModel.TRUE : TemplateBooleanModel.FALSE; } }
@Override TemplateModel _eval(Environment env) throws TemplateException { final TemplateModel tm = target.eval(env); target.assertNonNull(tm, env); return tm instanceof TemplateModelWithAPISupport ? TemplateBooleanModel.TRUE : TemplateBooleanModel.FALSE; } }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel tm = target.eval(env); target.assertNonNull(tm, env); return (tm instanceof TemplateDateModel) ? TemplateBooleanModel.TRUE : TemplateBooleanModel.FALSE; } }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel tm = target.eval(env); target.assertNonNull(tm, env); return (tm instanceof TemplateMarkupOutputModel) ? TemplateBooleanModel.TRUE : TemplateBooleanModel.FALSE; } }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel model = target.eval(env); if (model instanceof TemplateNodeModel) { return calculateResult((TemplateNodeModel) model, env); } else { throw new NonNodeException(target, model, env); } } abstract TemplateModel calculateResult(TemplateNodeModel nodeModel, Environment env)
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel tm = target.eval(env); target.assertNonNull(tm, env); return (tm instanceof TemplateSequenceModel || tm instanceof TemplateCollectionModel) && (_TemplateAPI.getTemplateLanguageVersionAsInt(this) < _TemplateAPI.VERSION_INT_2_3_21 // These implement TemplateSequenceModel, yet they can't be #list-ed: || !(tm instanceof SimpleMethodModel || tm instanceof OverloadedMethodsModel)) ? TemplateBooleanModel.TRUE : TemplateBooleanModel.FALSE; } }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel model = target.eval(env); if (model instanceof TemplateNodeModelEx) { return calculateResult((TemplateNodeModelEx) model, env); } else { throw new NonExtendedNodeException(target, model, env); } } abstract TemplateModel calculateResult(TemplateNodeModelEx nodeModel, Environment env)
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel tm = target.eval(env); target.assertNonNull(tm, env); return (tm instanceof TemplateDateModel) && ((TemplateDateModel) tm).getDateType() == dateType ? TemplateBooleanModel.TRUE : TemplateBooleanModel.FALSE; } }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel model = target.eval(env); if (!(model instanceof TemplateMarkupOutputModel)) { throw new NonMarkupOutputException(target, model, env); } return calculateResult((TemplateMarkupOutputModel) model); }
@Override TemplateModel _eval(Environment env) throws TemplateException { TemplateModel model = target.eval(env); if (!(model instanceof TemplateSequenceModel)) { throw new NonSequenceException(target, model, env); } return calculateResult((TemplateSequenceModel) model); } abstract TemplateModel calculateResult(TemplateSequenceModel tsm)
@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 TemplateElement[] accept(Environment env) throws TemplateException { if (exp != null) { env.setLastReturnValue(exp.eval(env)); } if (nextSibling() == null && getParentElement() instanceof Macro) { // Avoid unnecessary exception throwing return null; } throw Return.INSTANCE; }
@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 model = target.eval(env); if (model instanceof TemplateDateModel) { TemplateDateModel tdm = (TemplateDateModel) model; return calculateResult(EvalUtil.modelToDate(tdm, target), tdm.getDateType(), env); } else { throw newNonDateException(env, model, target); } }