/**********************************************************************
 * Copyright (c) 2002,2003 QNX Software Systems Ltd. and others.
 * All rights reserved.   This program and the accompanying materials
 * are made available under the terms of the Common Public License v0.5
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v05.html
 * 
 * Contributors: 
 * QNX Software Systems - Initial API and implementation
***********************************************************************/
package org.eclipse.cdt.core;

import org.eclipse.cdt.internal.core.InternalCExtension;
import org.eclipse.core.resources.IProject;

public abstract class AbstractCExtension extends InternalCExtension implements ICExtension {

	/**
	 * Returns the project for which this extrension is defined.
	 *	
	 * @return the project
	 */
	public final IProject getProject() {
		return super.getProject();
	}
	
	public final ICExtensionReference getExtensionReference() {
		return super.getExtensionReference();
	}
}
