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) {