| /******************************************************************************* |
| * Copyright (c) 2000, 2009 QNX Software Systems 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: |
| * QNX Software Systems - Initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.cdt.core; |
| |
| import org.eclipse.cdt.core.settings.model.ICConfigExtensionReference; |
| import org.eclipse.cdt.core.settings.model.ICConfigurationDescription; |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.core.runtime.IConfigurationElement; |
| |
| /** |
| * This is reference to {@link ICExtension} elements as stored |
| * in the Project Description. |
| * |
| * This has no notion of the ICConfigurationDescription, |
| * for that see {@link ICConfigExtensionReference} |
| * |
| * @see ICConfigExtensionReference |
| * @see ICExtension |
| * @see ICDescriptor |
| * |
| * @deprecated replaced with {@link ICConfigExtensionReference} obtained from an {@link ICConfigurationDescription} |
| * @noreference This interface is not intended to be referenced by clients. |
| */ |
| @Deprecated |
| public interface ICExtensionReference { |
| |
| /** |
| * Return the extension point of this reference. |
| * |
| * @return String |
| */ |
| public String getExtension(); |
| |
| /** |
| * Return the extension ID of this reference. |
| * |
| * @return String |
| */ |
| public String getID(); |
| |
| /** |
| * Sets a name/value data pair on this reference in the .cdtproject file |
| */ |
| public void setExtensionData(String key, String value) throws CoreException; |
| |
| /** |
| * Gets a value of the key from the .cdtproject file set by |
| * setExtensionData() |
| */ |
| public String getExtensionData(String key); |
| |
| /** |
| * Returns the project descriptor which this extension reference belongs to. |
| * @return the ICDescriptor |
| */ |
| public ICDescriptor getCDescriptor(); |
| |
| /** |
| * Creates and returns a new instance of the cextension executable |
| * identified by the <run> attribute of the cextension. |
| * <p> |
| * The ICExtension is instantiated using its 0-argument public |
| * constructor. If the class implements the |
| * <code>org.eclipse.core.runtime.IExecutableExtension</code> interface, the method |
| * <code>setInitializationData</code> is called, passing to the object |
| * the configuration information that was used to create it. |
| * </p> |
| * <p> |
| * Unlike other methods on this object, invoking this method may activate |
| * the plug-in. |
| * </p> |
| * |
| * @return the executable ICExtension instance |
| * @exception CoreException if an instance of the executable extension |
| * could not be created for any reason. |
| * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData |
| */ |
| public ICExtension createExtension() throws CoreException; |
| |
| /** |
| * Returns all configuration elements that are children of the |
| * cextension element. Returns an empty array if this configuration |
| * element has no children. |
| * <p> |
| * Each child corresponds to a nested XML element in the configuration |
| * markup. For example, the configuration markup |
| * |
| * <pre> |
| * <view> |
| *     <verticalHint>top</verticalHint> |
| *     <horizontalHint>left</horizontalHint> |
| * </view> |
| * </pre> |
| * |
| * corresponds to a configuration element, named <code>"view"</code>, |
| * with two children. |
| * </p> |
| * |
| * @return the child configuration elements |
| */ |
| public IConfigurationElement[] getExtensionElements() throws CoreException; |
| } |