1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.commons.betwixt.expression; 18 19 /** <p><code>VariableExpression</code> represents a variable expression such as 20 * <code>$foo</code> which returns the value of the given variable.</p> 21 * 22 * @author <a href="mailto:jstrachan@apache.org">James Strachan</a> 23 * @version $Revision: 438373 $ 24 */ 25 public class VariableExpression implements Expression { 26 27 /** The variable name */ 28 private String variableName; 29 30 /** Base constructor */ 31 public VariableExpression() { 32 } 33 34 /** 35 * Convenience constructor sets <code>VariableName</code> property 36 * @param variableName the name of the context variable 37 * whose value will be returned by an evaluation 38 */ 39 public VariableExpression(String variableName) { 40 this.variableName = variableName; 41 } 42 43 /** Return the value of a context variable. 44 * 45 * @param context evaluate against this context 46 * @return the value of the context variable named by the <code>VariableName</code> property 47 */ 48 public Object evaluate(Context context) { 49 return context.getVariable( variableName ); 50 } 51 52 /** 53 * Gets the variable name 54 * @return the name of the context variable whose value will be returned by an evaluation 55 */ 56 public String getVariableName() { 57 return variableName; 58 } 59 60 /** 61 * Sets the variable name 62 * @param variableName the name of the context variable 63 * whose value will be returned by an evaluation 64 */ 65 public void setVariableName(String variableName) { 66 this.variableName = variableName; 67 } 68 69 /** 70 * Do nothing 71 * @see org.apache.commons.betwixt.expression.Expression 72 */ 73 public void update(Context context, String newValue) { 74 // do nothing 75 } 76 77 /** 78 * Returns something useful for logging 79 * @return something useful for logging 80 */ 81 public String toString() { 82 return "VariableExpression [variable name=" + variableName + "]"; 83 } 84 }