/** * */ private void init() { Object parsedExpression = JSFELParserHelper .parseExpression(_jsfExpression); if (parsedExpression instanceof ComplexValue) { _expressionList = new ArrayList(); _expressionList.add(((ComplexValue) parsedExpression).getPrefix()); _expressionList.addAll(((ComplexValue) parsedExpression) .getSuffixes()); } else if (parsedExpression instanceof NamedValue) { _expressionList = new ArrayList(); _expressionList.add(parsedExpression); } }
public void replace(Object expression) { ComplexValue complexValue = (ComplexValue) expression; Application application = ApplicationUtil.getApplicationFromContext(); List suffixes = complexValue.getSuffixes(); for (int i = 0; i < suffixes.size(); i++) { ValueSuffix valueSuffix = (ValueSuffix) suffixes.get(i); if (isSuitablePropertySuffix(valueSuffix)) { PropertySuffix propertySuffix = (PropertySuffix) valueSuffix; suffixes.set(i, new JsfPropertySuffix(propertySuffix, application, processor_)); } else if (isSuitableArraySuffix(valueSuffix)) { ArraySuffix arraySuffix = (ArraySuffix) valueSuffix; suffixes.set(i, new JsfArraySuffix(arraySuffix, application, processor_)); } else { throw new IllegalStateException(); } } }
final public Expression Value() throws ParseException { Expression prefix; ValueSuffix suffix; List suffixes = null; prefix = ValuePrefix(); label_9: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case DOT: case LBRACKET: ; break; default: jj_la1[27] = jj_gen; break label_9; } suffix = ValueSuffix(); if (suffixes == null) { suffixes = new ArrayList (); } suffixes.add (suffix); } if (suffixes == null) { {if (true) return prefix;} } else { {if (true) return new ComplexValue (prefix, suffixes);} } throw new Error("Missing return statement in function"); }
Object base = evaluate(context, complexValue.getPrefix()); VariableResolver resolver = new ELVariableResolver(context); if (base == null) { throw new PropertyNotFoundException("Base is null: " + complexValue.getPrefix().getExpressionString()); List suffixes = complexValue.getSuffixes(); int max = suffixes.size() - 1; for (int i = 0; i < max; i++) {