001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.commons.betwixt.expression; 018 019 /** <p><code>VariableExpression</code> represents a variable expression such as 020 * <code>$foo</code> which returns the value of the given variable.</p> 021 * 022 * @author <a href="mailto:jstrachan@apache.org">James Strachan</a> 023 * @version $Revision: 438373 $ 024 */ 025 public class VariableExpression implements Expression { 026 027 /** The variable name */ 028 private String variableName; 029 030 /** Base constructor */ 031 public VariableExpression() { 032 } 033 034 /** 035 * Convenience constructor sets <code>VariableName</code> property 036 * @param variableName the name of the context variable 037 * whose value will be returned by an evaluation 038 */ 039 public VariableExpression(String variableName) { 040 this.variableName = variableName; 041 } 042 043 /** Return the value of a context variable. 044 * 045 * @param context evaluate against this context 046 * @return the value of the context variable named by the <code>VariableName</code> property 047 */ 048 public Object evaluate(Context context) { 049 return context.getVariable( variableName ); 050 } 051 052 /** 053 * Gets the variable name 054 * @return the name of the context variable whose value will be returned by an evaluation 055 */ 056 public String getVariableName() { 057 return variableName; 058 } 059 060 /** 061 * Sets the variable name 062 * @param variableName the name of the context variable 063 * whose value will be returned by an evaluation 064 */ 065 public void setVariableName(String variableName) { 066 this.variableName = variableName; 067 } 068 069 /** 070 * Do nothing 071 * @see org.apache.commons.betwixt.expression.Expression 072 */ 073 public void update(Context context, String newValue) { 074 // do nothing 075 } 076 077 /** 078 * Returns something useful for logging 079 * @return something useful for logging 080 */ 081 public String toString() { 082 return "VariableExpression [variable name=" + variableName + "]"; 083 } 084 }