1 /******************************************************************************* 2 * Copyright (c) 2000, 2006 IBM Corporation and others. 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Eclipse Public License v1.0 5 * which accompanies this distribution, and is available at 6 * http://www.eclipse.org/legal/epl-v10.html 7 * 8 * Contributors: 9 * IBM Corporation - initial API and implementation 10 *******************************************************************************/ 11 package org.eclipse.core.variables; 12 13 14 /** 15 * A variable that can be referenced in an expression, which resolves to a string 16 * value. Variables are referenced in expressions via their name, in the following 17 * format. 18 * <pre> 19 * ${varname} or ${varname:argument} 20 * </pre> 21 * <p> 22 * A variable is identified by its name, and optionally accepts an argument. When an 23 * argument is present, a colon separates the variable name from its argument. 24 * </p> 25 * <p> 26 * Variables can be contributed by extensions or programmatically. There are two 27 * kinds of variables. 28 * <ul> 29 * <li><code>IValueVariable</code> - variables that have a value (with getter and setter), and 30 * accept no arguments. The value of this type of variable is resolved at the time 31 * its value is set via its setter API.</li> 32 * <li><code>IDynamicVariable</code> - variables whose value is resolved at the time 33 * a string substitution is performed by a contributed resolver. Dynamic variables 34 * may accept an argument.</li> 35 * </ul> 36 * </p> 37 * <p> 38 * Clients are not intended to implement this interface. 39 * </p> 40 * @since 3.0 41 */ 42 public interface IStringVariable { 43 44 /** 45 * Returns the name of this variable. A variable is uniquely identified by 46 * its name. 47 * 48 * @return variable name 49 */ 50 public String getName(); 51 52 /** 53 * Returns a human readable description of this variable, possibly <code>null</code> 54 * 55 * @return a description of this variable, or <code>null</code> if none 56 */ 57 public String getDescription(); 58 59 } 60