1 /*******************************************************************************
2  * Copyright (c) 2000, 2011 IBM Corporation and others.
3  *
4  * This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License 2.0
6  * which accompanies this distribution, and is available at
7  * https://www.eclipse.org/legal/epl-2.0/
8  *
9  * SPDX-License-Identifier: EPL-2.0
10  *
11  * Contributors:
12  *     IBM Corporation - initial API and implementation
13  *******************************************************************************/
14 package org.eclipse.pde.core.plugin;
15 
16 import org.eclipse.core.runtime.CoreException;
17 import org.eclipse.pde.core.IIdentifiable;
18 
19 /**
20  * Classes that implement this interface model the extension
21  * element found in the plug-in or fragment manifest.
22  *
23  * @noimplement This interface is not intended to be implemented by clients.
24  * @noextend This interface is not intended to be extended by clients.
25  */
26 public interface IPluginExtension extends IPluginParent, IIdentifiable {
27 	/**
28 	 * A name of the property that will be used to
29 	 * notify about the "point" change
30 	 */
31 	String P_POINT = "point"; //$NON-NLS-1$
32 
33 	/**
34 	 * Returns the full ID of the extension point that this extension
35 	 * is plugged into.
36 	 *
37 	 * @return the full extension point ID
38 	 */
getPoint()39 	String getPoint();
40 
41 	/**
42 	 * Returns the schema for the extension point that this extension
43 	 * is plugged into or <code>null</code> if not found.
44 	 * <p>This method is an implementation detail - schema object
45 	 * is not needed for clients outside PDE and should not be used.
46 	 *
47 	 * @return The schema for the associated extension point or <code>null</code>
48 	 */
getSchema()49 	Object getSchema();
50 
51 	/**
52 	 * Sets the value of the extension point Id
53 	 * This method will throw a CoreException if
54 	 * this model is not editable.
55 	 * @param point the new extension point Id
56 	 * @throws CoreException if the model is not editable
57 	 */
setPoint(String point)58 	void setPoint(String point) throws CoreException;
59 }
60