TemplateTransformModel getTransform(Expression exp) throws TemplateException { TemplateTransformModel ttm = null; TemplateModel tm = exp.eval(this); if (tm instanceof TemplateTransformModel) { ttm = (TemplateTransformModel) tm; } else if (exp instanceof Identifier) { tm = configuration.getSharedVariable(exp.toString()); if (tm instanceof TemplateTransformModel) { ttm = (TemplateTransformModel) tm; } } return ttm; }
TemplateModel evalToNonMissing(Environment env) throws TemplateException { TemplateModel result = this.eval(env); assertNonNull(result, env); return result; }
final Expression deepCloneWithIdentifierReplaced( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { Expression clone = deepCloneWithIdentifierReplaced_inner(replacedIdentifier, replacement, replacementState); if (clone.beginLine == 0) { clone.copyLocationFrom(this); } return clone; }
@Override TemplateModel _eval(Environment env) throws TemplateException { return new ConstructorFunction(target.evalAndCoerceToPlainText(env), env, target.getTemplate()); }
/** * Throw an exception if the expression passed in is a Hash * Literal */ private void notHashLiteral(Expression exp, String expected) throws ParseException { if (exp instanceof HashLiteral) { String msg = "Error " + exp.getStartLocation() + "\nFound hash literal: " + exp.getCanonicalForm() + "\nExpecting " + expected; throw new ParseException(msg, exp); } }
public String getTemplateName() { return importedTemplateNameExp.toString(); }
String[] lines = splitToLines(blamed.toString()); for (int i = 0; i < lines.length; i++) { sb.append(i == 0 ? "==> " : "\n "); sb.append(blamed.getStartLocation()); sb.append(']');
@Override public String getCanonicalForm() { return target.getCanonicalForm() + "[" + keyExpression.getCanonicalForm() + "]"; }
final public Expression NotExpression() throws ParseException {Token t; Expression exp, result = null; ArrayList nots = new ArrayList(); label_2: while (true) { t = jj_consume_token(EXCLAM); nots.add(t); switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case EXCLAM:{ ; break; } default: jj_la1[4] = jj_gen; break label_2; } } exp = PrimaryExpression(); for (int i = 0; i < nots.size(); i++) { result = new NotExpression(exp); Token tok = (Token) nots.get(nots.size() -i -1); result.setLocation(template, tok, exp); exp = result; } {if ("" != null) return result;} throw new Error("Missing return statement in function"); }
boolean isTrue(Environment env) throws TemplateException { TemplateModel referent = getAsTemplateModel(env); if (referent instanceof TemplateBooleanModel) { return ((TemplateBooleanModel) referent).getAsBoolean(); } if (env.isClassicCompatible()) { return referent != null && !isEmpty(referent); } assertNonNull(referent, this, env); String msg = "Error " + getStartLocation() + "\nExpecting a boolean (true/false) expression here" + "\nExpression " + this + " does not evaluate to true/false " + "\nit is an instance of " + referent.getClass().getName(); throw new NonBooleanException(msg, env); }
@Override protected Expression deepCloneWithIdentifierReplaced_inner( String replacedIdentifier, Expression replacement, ReplacemenetState replacementState) { if (this.name.equals(replacedIdentifier)) { if (replacementState.replacementAlreadyInUse) { Expression clone = replacement.deepCloneWithIdentifierReplaced(null, null, replacementState); clone.copyLocationFrom(replacement); return clone; } else { replacementState.replacementAlreadyInUse = true; return replacement; } } else { return new Identifier(this.name); } }
@Advice.OnMethodEnter(inline = false) public static void onBeforeEvaluate(@Advice.Argument(0) Environment env, @Advice.This Expression dot) { Profiler.start(env.getCurrentTemplate().getName() + ':' + dot.getBeginLine() + '#' + dot.toString()); }
assertNonNull(referentModel, exp, env); String msg = "Error " + exp.getStartLocation() +"\nExpecting a string, " + (env.isClassicCompatible() ? "boolean, " : "" )
@Override TemplateModel _eval(Environment env) throws TemplateException { return Expression.isEmpty(evalMaybeNonexistentTarget(env)) ? TemplateBooleanModel.FALSE : TemplateBooleanModel.TRUE; }
private boolean getBoolean(Expression exp) throws ParseException { TemplateModel tm = null; try { tm = exp.getAsTemplateModel(null); } catch (Exception e) { throw new ParseException(e.getMessage() + "\nCould not evaluate expression: " + exp.getCanonicalForm() + exp.getStartLocation(), exp); } if (tm instanceof TemplateBooleanModel) { try { return ((TemplateBooleanModel) tm).getAsBoolean(); } catch (TemplateModelException tme) { } } if (tm instanceof TemplateScalarModel) { try { return StringUtil.getYesNo(((TemplateScalarModel) tm).getAsString()); } catch (Exception e) { throw new ParseException(e.getMessage() + "\nExpecting yes/no, found: " + exp.getCanonicalForm() + exp.getStartLocation(), exp); } } throw new ParseException("Expecting boolean (yes/no) parameter" + exp.getStartLocation(), exp); }
TemplateTransformModel getTransform(Expression exp) throws TemplateException { TemplateTransformModel ttm = null; TemplateModel tm = exp.getAsTemplateModel(this); if (tm instanceof TemplateTransformModel) { ttm = (TemplateTransformModel) tm; } else if (exp instanceof Identifier) { tm = getConfiguration().getSharedVariable(exp.toString()); if (tm instanceof TemplateTransformModel) { ttm = (TemplateTransformModel) tm; } } return ttm; }
private void appendParts(StringBuilder sb, Object[] parts) { Template template = this.template != null ? this.template : (blamed != null ? blamed.getTemplate() : null); for (int i = 0; i < parts.length; i++) { Object partObj = parts[i];
/** * Throw an exception if the expression passed in is a String * Literal */ private void notStringLiteral(Expression exp, String expected) throws ParseException { if (exp instanceof StringLiteral) { String msg = "Error " + exp.getStartLocation() + "\nFound string literal: " + exp + "\nExpecting: " + expected; throw new ParseException(msg, exp); } }