public Object transform(Object object) { if (!(object instanceof ExpressionParameter)) { return object; } String name = ((ExpressionParameter) object).getName(); if (!parameters.containsKey(name)) { if (pruneMissing) { return PRUNED_NODE; } else { throw new ExpressionException("Missing required parameter: $" + name); } } else { Object value = parameters.get(name); // wrap lists (for now); also support null parameters return (value != null) ? ExpressionFactory.wrapPathOperand(value) : null; } } };
@Override public void finishedChild(Expression node, int childIndex, boolean hasMoreChildren) { Object child = node.getOperand(childIndex); if (child instanceof ExpressionParameter) { node.setOperand(childIndex, nextValue(((ExpressionParameter) child).getName())); } // normally Object[] is an ASTList child else if (child instanceof Object[]) { Object[] array = (Object[]) child; for (int i = 0; i < array.length; i++) { if (array[i] instanceof ExpressionParameter) { array[i] = nextValue(((ExpressionParameter) array[i]).getName()); } } } }
String name = ((ExpressionParameter) object).getName(); if (!parameters.containsKey(name)) { if (pruneMissing) {