/*******************************************************************************
* Copyright (c) 2004, 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.CTargetPlatformData;
/**
* This class defines the os/architecture combination upon which the
* outputs of a tool-chain can be deployed. The osList and archList
* attributes contain the Eclipse names of the operating systems and
* architectures described by this element.
*
* @since 2.1
* @noextend This class is not intended to be subclassed by clients.
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface ITargetPlatform extends IBuildObject {
public static final String TARGET_PLATFORM_ELEMENT_NAME = "targetPlatform"; //$NON-NLS-1$
public static final String BINARY_PARSER = "binaryParser"; //$NON-NLS-1$
public static final String OS_LIST = "osList"; //$NON-NLS-1$
public static final String ARCH_LIST = "archList"; //$NON-NLS-1$
/**
* Returns the tool-chain that is the parent of this target platform.
*
* @return IToolChain
*/
public IToolChain getParent();
/**
* Returns the <code>ITargetPlatform</code> that is the superclass of this
* target platform, or <code>null</code> if the attribute was not specified.
*
* @return ITargetPlatform
*/
public ITargetPlatform getSuperClass();
/**
* Returns whether this element is abstract. Returns <code>false</code>
* if the attribute was not specified.
*
* @return boolean
*/
public boolean isAbstract();
/**
* Sets the isAbstract attribute of the target paltform.
*/
public void setIsAbstract(boolean b);
/**
* Returns a semi-colon delimited list of child Ids of the superclass'
* children that should not be automatically inherited by this element.
* Returns an empty string if the attribute was not specified.
* @return String
*/
public String getUnusedChildren();
/**
* Returns an array of operating systems this target platform represents.
*
* @return String[]
*/
public String[] getOSList();
/**
* Sets the OS list.
*
* @param OSs The list of OS names
*/
public void setOSList(String[] OSs);
/**
* Returns an array of architectures this target platform represents.
*
* @return String[]
*/
public String[] getArchList();
/**
* Sets the architecture list.
*
* @param archs The list of architecture names
*/
public void setArchList(String[] archs);
/**
* Returns the unique ID of the binary parser associated with the target platform.
*
* @return String
* @deprecated Use getBinaryParserList
*/
@Deprecated
public String getBinaryParserId();
/**
* Returns the unique IDs of the binary parsers associated with the target platform.
*
* @return String[]
*/
public String[] getBinaryParserList();
/**
* Sets the string id of the binary parser for this target platform.
*
* @deprecated Use setBinaryParserList
*/
@Deprecated
public void setBinaryParserId(String id);
/**
* Sets the string ids of the binary parsers for this target platform.
*/
public void setBinaryParserList(String[] ids);
/**
* Returns <code>true</code> if this element has changes that need to
* be saved in the project file, else <code>false</code>.
*
* @return boolean
*/
public boolean isDirty();
/**
* Sets the element's "dirty" (have I been modified?) flag.
*/
public void setDirty(boolean isDirty);
/**
* Returns <code>true</code> if this target platform was loaded from a manifest file,
* and <code>false</code> if it was loaded from a project (.cdtbuild) file.
*
* @return boolean
*/
public boolean isExtensionElement();
public CTargetPlatformData getTargetPlatformData();
}