protected override object getValueBody(OgnlContext context, object source) // throws OgnlException { Node expr = children[0]; IList answer = new ArrayList(); IElementsAccessor elementsAccessor = OgnlRuntime.getElementsAccessor(OgnlRuntime.getTargetClass(source)); for (IEnumerator e = elementsAccessor.getElements(source); e.MoveNext();) { object next = e.Current; if (OgnlOps.booleanValue(expr.getValue(context, next))) { answer.Add(next); } } return(answer); }
public object this [object key] { get { object result; if (RESERVED_KEYS.Contains(key)) { if (key.Equals(OgnlContext.THIS_CONTEXT_KEY)) { result = getCurrentObject(); } else { if (key.Equals(OgnlContext.ROOT_CONTEXT_KEY)) { result = getRoot(); } else { if (key.Equals(OgnlContext.CONTEXT_CONTEXT_KEY)) { result = this; } else { if (key.Equals(OgnlContext.TRACE_EVALUATIONS_CONTEXT_KEY)) { result = getTraceEvaluations() ? true : false; } else { if (key.Equals(OgnlContext.LAST_EVALUATION_CONTEXT_KEY)) { result = getLastEvaluation(); } else { if (key.Equals(OgnlContext.KEEP_LAST_EVALUATION_CONTEXT_KEY)) { result = getKeepLastEvaluation() ? true : false; } else { if (key.Equals(OgnlContext.CLASS_RESOLVER_CONTEXT_KEY)) { result = getClassResolver(); } else { if (key.Equals(OgnlContext.TYPE_CONVERTER_CONTEXT_KEY)) { result = getTypeConverter(); } else { if (key.Equals(OgnlContext.MEMBER_ACCESS_CONTEXT_KEY)) { result = getMemberAccess(); } else { throw new ArgumentException("unknown reserved key '" + key + "'"); } } } } } } } } } } else { result = values [key]; } return(result); } set { object result; if (RESERVED_KEYS.Contains(key)) { if (key.Equals(OgnlContext.THIS_CONTEXT_KEY)) { result = getCurrentObject(); setCurrentObject(value); } else { if (key.Equals(OgnlContext.ROOT_CONTEXT_KEY)) { result = getRoot(); setRoot(value); } else { if (key.Equals(OgnlContext.CONTEXT_CONTEXT_KEY)) { throw new ArgumentException("can't change " + OgnlContext.CONTEXT_CONTEXT_KEY + " in context"); } else { if (key.Equals(OgnlContext.TRACE_EVALUATIONS_CONTEXT_KEY)) { result = getTraceEvaluations() ? true : false; setTraceEvaluations(OgnlOps.booleanValue(value)); } else { if (key.Equals(OgnlContext.LAST_EVALUATION_CONTEXT_KEY)) { result = getLastEvaluation(); lastEvaluation = (Evaluation)value; } else { if (key.Equals(OgnlContext.KEEP_LAST_EVALUATION_CONTEXT_KEY)) { result = getKeepLastEvaluation() ? true : false; setKeepLastEvaluation(OgnlOps.booleanValue(value)); } else { if (key.Equals(OgnlContext.CLASS_RESOLVER_CONTEXT_KEY)) { result = getClassResolver(); setClassResolver((ClassResolver)value); } else { if (key.Equals(OgnlContext.TYPE_CONVERTER_CONTEXT_KEY)) { result = getTypeConverter(); setTypeConverter((TypeConverter)value); } else { if (key.Equals(OgnlContext.MEMBER_ACCESS_CONTEXT_KEY)) { result = getMemberAccess(); setMemberAccess((MemberAccess)value); } else { throw new ArgumentException("unknown reserved key '" + key + "'"); } } } } } } } } } } else { // result = values.Add(key, value); } // return result; } }