/*******************************************************************************
* 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.core.cdtvariables;
/**
* This interface represents the given build macro
* Clients may implement or extend this interface.
* @since 3.0
*/
public interface ICdtVariable{
/**
* can hold any text string
*/
public static final int VALUE_TEXT = 1;
/**
* can hold the array of text string values
*/
public static final int VALUE_TEXT_LIST = 2;
/**
* can hold file path
*/
public static final int VALUE_PATH_FILE = 3;
/**
* can hold the array of file path values
*/
public static final int VALUE_PATH_FILE_LIST = 4;
/**
* can hold dir path
*/
public static final int VALUE_PATH_DIR = 5;
/**
* can hold the array of dir path values
*/
public static final int VALUE_PATH_DIR_LIST = 6;
/**
* can hold both file and dir path
*/
public static final int VALUE_PATH_ANY = 7;
/**
* can hold the array of PATH_ANY values
*/
public static final int VALUE_PATH_ANY_LIST = 8;
/**
* Returns the macro name
*/
String getName();
/**
* @return IBuildMacro.VALUE_xxx
*/
int getValueType();
/**
* @throws CdtVariableException if macro holds StringList-type value
*/
String getStringValue() throws CdtVariableException;
/**
* @throws CdtVariableException if macro holds single String-type value
*/
String[] getStringListValue() throws CdtVariableException;
}