/*******************************************************************************
* Copyright (c) 2007, 2010 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.managedbuilder.core;
import org.eclipse.cdt.core.settings.model.extension.CLanguageData;
import org.eclipse.cdt.core.settings.model.extension.CResourceData;
import org.eclipse.core.runtime.IPath;
/**
* @noextend This class is not intended to be subclassed by clients.
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface IResourceInfo extends IBuildObject {
// public static final String PARENT_FOLDER_INFO_ID = "parentFolderInfoId";
// public static final String BASE_TOOLCHAIN_ID = "baseToolChainId";
// public static final String INHERIT_PARENT_INFO = "inheritParentInfo"; //$NON-NLS-1$
public static final String RESOURCE_PATH = "resourcePath"; //$NON-NLS-1$
public static final String EXCLUDE = "exclude"; //$NON-NLS-1$
IPath getPath();
void setPath(IPath path);
boolean isExcluded();
boolean isExtensionElement();
void setExclude(boolean excluded);
boolean canExclude(boolean exclude);
boolean isDirty();
boolean needsRebuild();
void setDirty(boolean dirty);
void setRebuildState(boolean rebuild);
int getKind();
IConfiguration getParent();
// IFolderInfo getParentFolderInfo();
// IToolChain getBaseToolChain();
CResourceData getResourceData();
boolean isValid();
CLanguageData[] getCLanguageDatas();
ITool[] getTools();
// boolean isParentInfoInherited();
boolean supportsBuild(boolean managed);
/**
* Sets the value of a boolean option for this resource configuration.
*
* @param parent The holder/parent of the option.
* @param option The option to change.
* @param value The value to apply to the option.
*
* @return IOption The modified option. This can be the same option or a newly created option.
*/
public IOption setOption(IHoldsOptions parent, IOption option, boolean value)
throws BuildException;
/**
* Sets the value of a string option for this resource configuration.
*
* @param parent The holder/parent of the option.
* @param option The option that will be effected by change.
* @param value The value to apply to the option.
*
* @return IOption The modified option. This can be the same option or a newly created option.
*/
public IOption setOption(IHoldsOptions parent, IOption option, String value)
throws BuildException;
/**
* Sets the value of a list option for this resource configuration.
*
* @param parent The holder/parent of the option.
* @param option The option to change.
* @param value The values to apply to the option.
*
* @return IOption The modified option. This can be the same option or a newly created option.
*/
public IOption setOption(IHoldsOptions parent, IOption option, String[] value)
throws BuildException;
public IOption setOption(IHoldsOptions parent, IOption option, OptionStringValue[] value)
throws BuildException;
boolean isSupported();
}