1 /* 2 * Copyright 2001-2004 The Apache Software Foundation. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.apache.commons.betwixt.expression; 17 18 /** <p><code>Expression</code> represents an arbitrary expression on a bean.</p> 19 * 20 * @author <a HREF="mailto:jstrachan@apache.org">James Strachan</a> 21 */ 22 public interface Expression { 23 24 /** Evaluates the expression on the bean with the given context 25 * and returns the result 26 * 27 * @param context evaluate against this <code>Context</code> 28 * @return the value of the expression 29 */ 30 public Object evaluate(Context context); 31 32 33 /* XXX 34 Is update actually useful? 35 None of the expression implementations i can find do anything when it's called. 36 I suspect that it's been replaced by Updater 37 but i maybe i'm missing something subtle 38 */ 39 /** <p>Updates the current bean context with a new String value. 40 * This is typically used when parsing XML and updating a beans value 41 * from XML.<p> 42 * 43 * @param context update this <code>Context</code> 44 * @param newValue the new value for this expression 45 * @deprecated 0.5 use {@link Updater} instead 46 */ 47 public void update(Context context, String newValue); 48 } 49