Object object = objectExpression.execute(ctx); if (object == null) { if (nullSafe || ctx.getTemplate().getOption().isSafecall()) { return null;
@Override public Object execute(InterpretContext ctx) throws InterpretException { Object object = objectExpression.execute(ctx); if (object == null) { if (nullSafe || ctx.getTemplate().getOption().isSafecall()) { return null; } throw new InterpretException(Errors.EXPRESSION_OBJECT_IS_NULL).set(position); } else if (object == ALU.VOID) { throw new InterpretException(Errors.EXPRESSION_OBJECT_IS_VOID).set(position); } return doInvokeGetter(ctx, last, object); }
@Override public void doIncludeCall(String file, Map<String, Object> arguments, String returnName) { JetTemplate template = engine.getTemplate(file); this.returnName = returnName; // use new name securityManager = template.getSecurityManager(); templateStack.push(template); valueStack.push(template.getOption().getSymbols(), arguments, true); JetWriter originWriter = writer; setWriter(JetWriter.create(writer, template.getOption().isTrimLeadingWhitespaces())); template.getAstNode().execute(this); setWriter(originWriter); // reset valueStack.pop(); templateStack.pop(); securityManager = templateStack.current().getSecurityManager(); // reset this.returnName = null; // clear }
@Override public Object execute(InterpretContext ctx) throws InterpretException { Object object = objectExpression.execute(ctx); if (object == null) { if (nullSafe || ctx.getTemplate().getOption().isSafecall()) { return null; } throw new InterpretException(Errors.EXPRESSION_OBJECT_IS_NULL).set(position); } else if (object == ALU.VOID) { throw new InterpretException(Errors.EXPRESSION_OBJECT_IS_VOID).set(position); } Object[] arguments; if (argumentList == null) { arguments = ArrayUtils.EMPTY_OBJECT_ARRAY; } else { arguments = argumentList.execute(ctx); } return doInvoke(ctx, last, object, arguments); }