public Object evaluate(XelContext ctx) { //Test case: B30-1957661.zul where a function mapper is created //by zscript so it is different from one page to page return _expr.evaluate(ctx.getVariableResolver(), ctx.getFunctionMapper()); }
public Object getAttribute(String name) { return _ctx.getAttribute(name); } public Object setAttribute(String name, Object value) {
public Object removeAttribute(String name) { return _ctx.removeAttribute(name); } public Map<String, Object> getAttributes() {
public FunctionMapper getFunctionMapper() { return _bMapper ? _mapper: _ctx.getFunctionMapper(); } public Object getAttribute(String name) {
/** Returns the root object. */ public static Object getRoot(XelContext ctx) { final VariableResolver resolver = ctx.getVariableResolver(); return resolver != null ? resolver: Expressions.EMPTY_RESOLVER; }
public Object setAttribute(String name, Object value) { return _ctx.setAttribute(name, value); } public boolean hasAttribute(String name) {
public Map<String, Object> getAttributes() { return _ctx.getAttributes(); } }
public javax.el.FunctionMapper getFunctionMapper() { return _xelc != null ? new XelELMapper(_xelc.getFunctionMapper()): null; } public VariableMapper getVariableMapper() {
public VariableResolver getVariableResolver() { return _bResolver ? _resolver: _ctx.getVariableResolver(); } public FunctionMapper getFunctionMapper() {
public Object setAttribute(String name, Object value) { return getXelContext().setAttribute(name, value); }
public Object evaluate(XelContext xelc, String expression, Class expectedType) throws XelException { return _eval.evaluate(expression, expectedType, xelc != null ? xelc.getVariableResolver(): null, xelc != null ? xelc.getFunctionMapper(): null); }
public org.zkoss.zel.FunctionMapper getFunctionMapper() { return _xelc != null ? new XelELMapper(_xelc.getFunctionMapper()): null; } public VariableMapper getVariableMapper() {
/*package*/ XelELContext(XelContext xelc) { _xelc = xelc; _resolver = new XelELResolver(xelc.getVariableResolver()); }
public Binding getBinding() { return (Binding) getXelContext().getAttribute(BinderImpl.BINDING); //see BindEvaluatorXImpl#newXelContext() }
protected XelContext newXelContext(BindContext ctx, final Component comp) { final FunctionMapper mapper = getFunctionMapper(comp); //ZK-1795MVVM nested template may cause exception //Dennis: Shouldn't get the real variable-resolver and keep it, it will set ref as evaluator's self, //When nested MVVM templates, if there are a ref-binding, it will newXelContext multiple time to do new evaluation in this evaluation, //this cause the real variable-resolver's self be changed when newXelContext called. final VariableResolver resolver = new VariableResolver() { public Object resolveVariable(String name) throws XelException { VariableResolver vr = getVariableResolver(comp); return vr == null ? null : vr.resolveVariable(name); } }; final XelContext xelc = new SimpleBindXelContext(comp, ctx != null ? ctx.getBinder() : null, resolver, mapper); //super.newXelContext(comp); xelc.setAttribute(BinderImpl.BINDCTX, ctx); if (ctx != null) { xelc.setAttribute(BinderImpl.BINDING, ctx.getBinding()); //Dennis, a special control flag to ignore adding tracker when doing el, //see BindELContext#ignoreTracker xelc.setAttribute(BinderImpl.IGNORE_TRACKER, ctx.getAttribute(BinderImpl.IGNORE_TRACKER)); } return xelc; }
/** * Removes the attribute, if any. * @since 8.0.0 */ public Object removeAttribute(String name) { return getXelContext().removeAttribute(name); }
private Context(String content, XelContext xelc, Locator loc) { this.content = content; _resolver = xelc != null ? xelc.getVariableResolver() : null; _mapper = new SimpleMapper(xelc != null ? xelc.getFunctionMapper() : null); _xelf = Expressions.newExpressionFactory(); _locator = loc; this.nLines = 1; }
public javax.el.FunctionMapper getFunctionMapper() { return _xelc != null ? new XelELMapper(_xelc.getFunctionMapper()) : null; }
public Object resolve(XelContext ctx, Object base, Object name) { Object o = ctx.getVariableResolver(); return (o instanceof VariableResolverX) ? ((VariableResolverX)o).resolveVariable(ctx, base, name): o != null && base == null && name != null ? ((VariableResolver)o).resolveVariable(name.toString()): null; } };
public BindContext getBindContext() { return (BindContext) getXelContext().getAttribute(BinderImpl.BINDCTX); //see BindEvaluatorXImpl#newXelContext() }