1 package net.sourceforge.phpdt.externaltools.internal.registry;
3 /**********************************************************************
4 Copyright (c) 2002 IBM Corp. and others. All rights reserved.
5 This file is made available under the terms of the Common Public License v1.0
6 which accompanies this distribution, and is available at
7 http://www.eclipse.org/legal/cpl-v10.html
10 **********************************************************************/
12 import net.sourceforge.phpdt.externaltools.variable.ExpandVariableContext;
13 import net.sourceforge.phpdt.externaltools.variable.IVariableTextExpander;
15 import org.eclipse.core.runtime.IConfigurationElement;
18 * Represents the variable for the argument
20 public final class ArgumentVariable extends ExternalToolVariable {
21 private static final DefaultTextExpander defaultExpander = new DefaultTextExpander();
23 private IVariableTextExpander expander = null;
26 * Creates an argument variable
31 * a short description of what the variable will expand to
33 * the configuration element
35 /* package */ArgumentVariable(String tag, String description,
36 IConfigurationElement element) {
37 super(tag, description, element);
41 * Returns the object that can expand the variable as text.
43 public IVariableTextExpander getExpander() {
44 if (expander == null) {
46 expander = (IVariableTextExpander) createObject(ExternalToolVariableRegistry.TAG_EXPANDER_CLASS);
47 } catch (ClassCastException exception) {
49 if (expander == null) {
50 expander = defaultExpander;
57 * Default variable text expander implementation which does not expand
58 * variables, but just returns <code>null</code>.
60 private static final class DefaultTextExpander implements
61 IVariableTextExpander {
63 * (non-Javadoc) Method declared on IVariableTextExpander.
65 public String getText(String varTag, String varValue,
66 ExpandVariableContext context) {