From 1f0a62121350d1ba33e2d1673e3f79bd244fec96 Mon Sep 17 00:00:00 2001
From: Markus Schorn <markus.schorn@windriver.com>
Date: Wed, 4 Feb 2009 08:51:22 +0000
Subject: [PATCH] API tags for org.eclipse.cdt.core, bug 260830.

---
 .../core/model/util/CDTListComparator.java    |  3 --
 .../org/eclipse/cdt/core/dom/IPDOMNode.java   |  3 ++
 .../eclipse/cdt/core/AbstractCExtension.java  | 28 +++++++++++---
 .../org/eclipse/cdt/core/CCProjectNature.java |  4 ++
 .../org/eclipse/cdt/core/CConventions.java    |  3 +-
 .../cdt/core/CCorePreferenceConstants.java    |  5 ++-
 .../eclipse/cdt/core/CDescriptorEvent.java    |  4 ++
 .../org/eclipse/cdt/core/CProjectNature.java  |  4 ++
 .../org/eclipse/cdt/core/CommandLauncher.java |  7 ++--
 .../eclipse/cdt/core/ConsoleOutputStream.java |  2 +
 .../eclipse/cdt/core/ErrorParserManager.java  |  3 ++
 .../eclipse/cdt/core/ICDescriptorManager.java |  4 ++
 .../cdt/core/ICDescriptorOperation.java       |  4 ++
 .../src/org/eclipse/cdt/core/ICExtension.java |  2 +
 .../cdt/core/ICExtensionDescriptor.java       |  6 ++-
 .../cdt/core/ICExtensionReference.java        |  3 ++
 .../org/eclipse/cdt/core/ICLogConstants.java  |  2 +
 .../src/org/eclipse/cdt/core/ICOwner.java     |  4 ++
 .../src/org/eclipse/cdt/core/ICOwnerInfo.java |  4 ++
 .../org/eclipse/cdt/core/IConsoleParser.java  |  2 +
 .../eclipse/cdt/core/IMarkerGenerator.java    |  1 +
 .../eclipse/cdt/core/IPositionConverter.java  | 12 ++----
 .../org/eclipse/cdt/core/IProcessInfo.java    |  4 ++
 .../org/eclipse/cdt/core/IProcessList.java    |  4 ++
 .../org/eclipse/cdt/core/ISymbolReader.java   |  2 +
 .../eclipse/cdt/core/ProblemMarkerInfo.java   |  3 ++
 .../src/org/eclipse/cdt/core/ToolFactory.java |  2 +
 .../internal/core/CConfigBasedDescriptor.java |  7 ++--
 .../cdt/internal/core/InternalCExtension.java | 37 -------------------
 29 files changed, 104 insertions(+), 65 deletions(-)
 delete mode 100644 core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/InternalCExtension.java

diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/util/CDTListComparator.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/util/CDTListComparator.java
index fd9ac79d545..c6c5f5008ec 100644
--- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/util/CDTListComparator.java
+++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/util/CDTListComparator.java
@@ -17,9 +17,6 @@ import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
 import org.eclipse.cdt.core.settings.model.ICLanguageSetting;
 import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
 
-/**
- * @noextend This class is not intended to be subclassed by clients.
- */
 public class CDTListComparator implements Comparator<Object> {
 	private static Comparator<Object> comparator = null;
 
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IPDOMNode.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IPDOMNode.java
index 4b83d27d7e4..62a01e182f7 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IPDOMNode.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IPDOMNode.java
@@ -17,6 +17,8 @@ import org.eclipse.core.runtime.CoreException;
 
 /**
  * Interface for all nodes that can be visited by a {@link IPDOMVisitor}.
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
  */
 public interface IPDOMNode {
 
@@ -28,6 +30,7 @@ public interface IPDOMNode {
 	/**
 	 * Frees memory allocated by this node, the node may no longer be used.
 	 * @param linkage the linkage the node belongs to.
+	 * @noreference This method is not intended to be referenced by clients.
 	 */
 	public void delete(PDOMLinkage linkage) throws CoreException;
 }
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/AbstractCExtension.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/AbstractCExtension.java
index d6ade805b16..55b6e6f709d 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/AbstractCExtension.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/AbstractCExtension.java
@@ -10,23 +10,39 @@
  *******************************************************************************/
 package org.eclipse.cdt.core;
 
-import org.eclipse.cdt.internal.core.InternalCExtension;
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.PlatformObject;
 
-public abstract class AbstractCExtension extends InternalCExtension implements ICExtension {
+public abstract class AbstractCExtension extends PlatformObject implements ICExtension {
+	private IProject fProject;
+	private ICExtensionReference extensionRef;
 
 	/**
 	 * Returns the project for which this extrension is defined.
 	 *	
 	 * @return the project
 	 */
-	@Override
 	public final IProject getProject() {
-		return super.getProject();
+		return fProject;
 	}
 	
-	@Override
 	public final ICExtensionReference getExtensionReference() {
-		return super.getExtensionReference();
+		return extensionRef;
+	}
+	
+
+    // internal stuff
+	/**
+	 * @noreference This method is not intended to be referenced by clients.
+	 */
+	public void setProject(IProject project) {
+		fProject = project;
+	}
+
+	/**
+	 * @noreference This method is not intended to be referenced by clients.
+	 */
+	public void setExtensionReference(ICExtensionReference extReference) {
+		extensionRef = extReference;
 	}
 }
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCProjectNature.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCProjectNature.java
index 30a10749b32..371e63e9f86 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCProjectNature.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCProjectNature.java
@@ -17,6 +17,10 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 
+/**
+ * @noextend This class is not intended to be subclassed by clients.
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ */
 public class CCProjectNature extends CProjectNature {
 
 	public static final String CC_NATURE_ID= CCorePlugin.PLUGIN_ID + ".ccnature"; //$NON-NLS-1$
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CConventions.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CConventions.java
index d897a6263f8..27d41c2cfe2 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CConventions.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CConventions.java
@@ -26,7 +26,8 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.osgi.util.NLS;
 
 /**
- * @author hamer
+ * @noextend This interface is not intended to be extended by clients.
+ * @noinstantiate This class is not intended to be instantiated by clients.
  */
 public class CConventions {
 	private final static String scopeResolutionOperator= "::"; //$NON-NLS-1$
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java
index 06cc560dc30..421d42beb47 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePreferenceConstants.java
@@ -12,7 +12,10 @@
  *******************************************************************************/
 package org.eclipse.cdt.core;
 
-
+/**
+ * @noextend This class is not intended to be subclassed by clients.
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ */
 public class CCorePreferenceConstants {
 
 	/**
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CDescriptorEvent.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CDescriptorEvent.java
index 10cb59fdc93..1efb24f2a10 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CDescriptorEvent.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CDescriptorEvent.java
@@ -12,6 +12,10 @@ package org.eclipse.cdt.core;
 
 import java.util.EventObject;
 
+/**
+ * @noextend This class is not intended to be subclassed by clients.
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ */
 public class CDescriptorEvent extends EventObject {
 
 	/**
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CProjectNature.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CProjectNature.java
index 7ccd8d45a9f..b10e84902d5 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CProjectNature.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CProjectNature.java
@@ -22,6 +22,10 @@ import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
 
+/**
+ * @noextend This class is not intended to be subclassed by clients.
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ */
 public class CProjectNature implements IProjectNature {
 
 	public static final String C_NATURE_ID = CCorePlugin.PLUGIN_ID + ".cnature"; //$NON-NLS-1$
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CommandLauncher.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CommandLauncher.java
index 3a9cbb6f5e7..7c16df74c1a 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CommandLauncher.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CommandLauncher.java
@@ -10,10 +10,6 @@
  *******************************************************************************/
 package org.eclipse.cdt.core;
 
-/*
- * (c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
- */
-
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
@@ -25,6 +21,9 @@ import org.eclipse.cdt.utils.spawner.ProcessFactory;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 
+/**
+ * @noextend This class is not intended to be subclassed by clients.
+ */
 public class CommandLauncher {
 
 	public final static int COMMAND_CANCELED = 1;
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ConsoleOutputStream.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ConsoleOutputStream.java
index 3e0a3038f1d..d9a80b9a6cb 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ConsoleOutputStream.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ConsoleOutputStream.java
@@ -17,6 +17,8 @@ import java.io.OutputStream;
 
 /**
  * Output stream which storing the console output
+ * 
+ * @noinstantiate This class is not intended to be instantiated by clients.
  */
 public class ConsoleOutputStream extends OutputStream {
 	
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ErrorParserManager.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ErrorParserManager.java
index da8e25ea272..f7c89943750 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ErrorParserManager.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ErrorParserManager.java
@@ -37,6 +37,9 @@ import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 
+/**
+ * @noextend This class is not intended to be subclassed by clients.
+ */
 public class ErrorParserManager extends OutputStream {
 
 	private int nOpens;
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICDescriptorManager.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICDescriptorManager.java
index c2fc27776e5..36ad2e0e0fd 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICDescriptorManager.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICDescriptorManager.java
@@ -16,6 +16,10 @@ import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 
+/**
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
 public interface ICDescriptorManager {
 
 	public void configure(IProject project, String id) throws CoreException;
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICDescriptorOperation.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICDescriptorOperation.java
index 90e50918a35..ccbfe545013 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICDescriptorOperation.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICDescriptorOperation.java
@@ -15,6 +15,10 @@ import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 
+/**
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
 public interface ICDescriptorOperation {
 	
 	/**
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICExtension.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICExtension.java
index 1e135408571..bf74dbdddc0 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICExtension.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICExtension.java
@@ -14,6 +14,8 @@ import org.eclipse.core.resources.IProject;
 
 /**
  * This represents an executable extension in the cmodel hierarchy
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
  */
 public interface ICExtension {
 	public IProject getProject();
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICExtensionDescriptor.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICExtensionDescriptor.java
index 0d88e4a589f..c7e46f74f45 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICExtensionDescriptor.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICExtensionDescriptor.java
@@ -10,8 +10,12 @@
  *******************************************************************************/
 package org.eclipse.cdt.core;
 
+/**
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
 public interface ICExtensionDescriptor {
 	String getName();
-	
+
 	String getId();
 }
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICExtensionReference.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICExtensionReference.java
index 6bda14a33fc..f0ad0dd7b6f 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICExtensionReference.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICExtensionReference.java
@@ -24,6 +24,9 @@ import org.eclipse.core.runtime.IConfigurationElement;
  * @see ICConfigExtensionReference
  * @see ICExtension
  * @see ICDescriptor
+ * 
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
  */
 public interface ICExtensionReference {
 
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICLogConstants.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICLogConstants.java
index 81c95437921..7ed29fc8059 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICLogConstants.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICLogConstants.java
@@ -14,6 +14,8 @@ package org.eclipse.cdt.core;
 
 /**
  * @author bgheorgh
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
  */
 public interface ICLogConstants {
     public class LogConst {
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICOwner.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICOwner.java
index 0d69ba85934..8a7fa44535e 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICOwner.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICOwner.java
@@ -12,6 +12,10 @@ package org.eclipse.cdt.core;
 
 import org.eclipse.core.runtime.CoreException;
 
+/**
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
 public interface ICOwner {
 	public void configure(ICDescriptor cproject) throws CoreException;
 	public void update(ICDescriptor cproject, String extensionID) throws CoreException;
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICOwnerInfo.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICOwnerInfo.java
index 5bebbcf0d3d..88736bff279 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICOwnerInfo.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ICOwnerInfo.java
@@ -10,6 +10,10 @@
  *******************************************************************************/
 package org.eclipse.cdt.core;
 
+/**
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
 public interface ICOwnerInfo {
 	public String getID();	
 	public String getName();
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IConsoleParser.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IConsoleParser.java
index f12ea00aeac..86057941b25 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IConsoleParser.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IConsoleParser.java
@@ -14,6 +14,8 @@ package org.eclipse.cdt.core;
  * A basic interface for console parsers
  * 
  * @author vhirsl
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
  */
 public interface IConsoleParser {
 	/**
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IMarkerGenerator.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IMarkerGenerator.java
index 335d352613f..14b4c97226d 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IMarkerGenerator.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IMarkerGenerator.java
@@ -14,6 +14,7 @@ import org.eclipse.core.resources.IResource;
 
 /**
  * @author sam.robb
+ * @noextend This interface is not intended to be extended by clients.
  */
 public interface IMarkerGenerator {
 	int SEVERITY_INFO = 0;
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IPositionConverter.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IPositionConverter.java
index 34d2fa40665..85d585fd52d 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IPositionConverter.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IPositionConverter.java
@@ -30,16 +30,10 @@ import org.eclipse.jface.text.IRegion;
  * An deletion followed by an insertion without saving the file inbetween, will cancel
  * the deletion as far as possible.
  * 
- * <p> This interface is not intended to be implemented by clients. </p>
- * 
- * <p>
- * <strong>EXPERIMENTAL</strong>. This interface has been added as
- * part of a work in progress. There is no guarantee that this API will
- * work or that it will remain the same. Please do not use this API without
- * consulting with the CDT team.
- * </p>
- * 
  * @since 4.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 IPositionConverter {
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IProcessInfo.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IProcessInfo.java
index fbddcb461e3..ed07f9fa9ea 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IProcessInfo.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IProcessInfo.java
@@ -10,6 +10,10 @@
  *******************************************************************************/
 package org.eclipse.cdt.core;
 
+/**
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
 public interface IProcessInfo {
 	public int getPid();
 	public String getName();
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IProcessList.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IProcessList.java
index 046afbbbc82..4c8ed3bff79 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IProcessList.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/IProcessList.java
@@ -10,6 +10,10 @@
  *******************************************************************************/
 package org.eclipse.cdt.core;
 
+/**
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
 public interface IProcessList {
 	public IProcessInfo[] getProcessList();
 }
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ISymbolReader.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ISymbolReader.java
index 014d0984986..3b981e9c338 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ISymbolReader.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ISymbolReader.java
@@ -15,6 +15,8 @@ package org.eclipse.cdt.core;
  * 
  * This initial version only returns a list of source files.
  * 
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
  */
 public interface ISymbolReader {
 
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ProblemMarkerInfo.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ProblemMarkerInfo.java
index ab018846e00..8a086b76d9f 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ProblemMarkerInfo.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ProblemMarkerInfo.java
@@ -14,6 +14,9 @@ package org.eclipse.cdt.core;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.IPath;
 
+/**
+ * @noextend This class is not intended to be subclassed by clients.
+ */
 public  class ProblemMarkerInfo {
 		
 		public IResource file;
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ToolFactory.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ToolFactory.java
index 2a279ca5e88..1c8e8472447 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ToolFactory.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/ToolFactory.java
@@ -24,6 +24,8 @@ import org.eclipse.core.runtime.IExtensionPoint;
 import org.eclipse.core.runtime.Platform;
 
 /**
+ * @noextend This class is not intended to be subclassed by clients.
+ * @noinstantiate This class is not intended to be instantiated by clients.
  */
 public class ToolFactory {
 
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CConfigBasedDescriptor.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CConfigBasedDescriptor.java
index abfdf69a59b..b97c7def805 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CConfigBasedDescriptor.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CConfigBasedDescriptor.java
@@ -20,6 +20,7 @@ import java.util.HashMap;
 import java.util.LinkedHashSet;
 import java.util.Map;
 
+import org.eclipse.cdt.core.AbstractCExtension;
 import org.eclipse.cdt.core.CCorePlugin;
 import org.eclipse.cdt.core.CDescriptorEvent;
 import org.eclipse.cdt.core.ICDescriptor;
@@ -155,12 +156,12 @@ final public class CConfigBasedDescriptor implements ICDescriptor {
 		}
 
 		public ICExtension createExtension() throws CoreException {
-			InternalCExtension cExtension = null;
+			AbstractCExtension cExtension = null;
 			IConfigurationElement el = CExtensionUtil.getFirstConfigurationElement(fCfgExtRef, CEXTENSION_NAME, false);
-			cExtension = (InternalCExtension)el.createExecutableExtension("run"); //$NON-NLS-1$
+			cExtension = (AbstractCExtension)el.createExecutableExtension("run"); //$NON-NLS-1$
 			cExtension.setExtensionReference(this);
 			cExtension.setProject(getProject());
-			return (ICExtension)cExtension;
+			return cExtension;
 		}
 
 		public ICDescriptor getCDescriptor() {
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/InternalCExtension.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/InternalCExtension.java
deleted file mode 100644
index e7cd974aad6..00000000000
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/InternalCExtension.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 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.internal.core;
-
-import org.eclipse.cdt.core.ICExtensionReference;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.PlatformObject;
-
-public abstract class InternalCExtension extends PlatformObject {
-
-	private IProject fProject;
-	private ICExtensionReference extensionRef;
-		
-	protected void setProject(IProject project) {
-		fProject = project;
-	}
-
-	void setExtensionReference(ICExtensionReference extReference) {
-		extensionRef = extReference;
-	}
-		
-	protected IProject getProject() {
-		return fProject;
-	}
-
-	protected ICExtensionReference getExtensionReference() {
-		return extensionRef;
-	}
-}