/******************************************************************************* * Copyright (c) 2005, 2009 Intel Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Intel Corporation - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.utils.cdtvariables; import org.eclipse.cdt.core.cdtvariables.CdtVariableException; /** * This interface represents the logic of how macro references should be resolved * The implementer of this interface is passed to the MacroResolver and * when the the resolve* methods of this interface are called by the MacroResolver * each time the macro reference is encountered in the string being resolved * to resolve the macro encountered macro reference * * @since 3.0 * @noextend This interface is not intended to be extended by clients. * @noimplement This interface is not intended to be implemented by clients. */ public interface IVariableSubstitutor { /** * called to resolve to String the macro reference of the specified name * * @param macroName the macro name * @return String * @throws CdtVariableException */ public String resolveToString(String macroName) throws CdtVariableException; /** * called to resolve to String-List the macro reference of the specified name * * @param macroName the macro name * @return String[] * @throws CdtVariableException */ public String[] resolveToStringList(String macroName) throws CdtVariableException; /** * called to set the context type and context info to be used * * @param contextType the context type * @param contextData the context data * @throws BuildMacroException */ // public void setMacroContextInfo(int contextType, Object contextData) throws BuildMacroException; /** * returns the macro conttext info used * @return IMacroContextInfo */ // public IMacroContextInfo getMacroContextInfo(); }