blob: a84ad3d70b331fe1a827967b357d5b62ca5bbe1e [file] [log] [blame]
package org.eclipse.core.runtime;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import java.net.URL;
/**
* The plug-in registry holds the master list of all
* discovered plug-ins, extension points, and extensions.
* <p>
* The plug-in registry can be queried, by name, for
* plug-ins, extension points, and extensions.
* </p>
* <p>
* This interface is not intended to be implemented by clients.
* </p>
*/
public interface IPluginRegistry {
/**
* Returns all configuration elements from all extensions configured
* into the identified extension point. Returns an empty array if the extension
* point does not exist, has no extensions configured, or none of the extensions
* contain configuration elements.
*
* @param extensionPointId the unique identifier of the extension point
* (e.g. <code>"org.eclipse.core.resources.builders"</code>)
* @return the configuration elements
*/
public IConfigurationElement[] getConfigurationElementsFor(String extensionPointId);
/**
* Returns all configuration elements from all extensions configured
* into the identified extension point. Returns an empty array if the extension
* point does not exist, has no extensions configured, or none of the extensions
* contain configuration elements.
*
* @param pluginId the unique identifier of the plug-in
* (e.g. <code>"org.eclipse.core.resources"</code>)
* @param extensionPointName the simple identifier of the
* extension point (e.g. <code>"builders"</code>)
* @return the configuration elements
*/
public IConfigurationElement[] getConfigurationElementsFor(String pluginId, String extensionPointName);
/**
* Returns all configuration elements from the identified extension.
* Returns an empty array if the extension does not exist or
* contains no configuration elements.
*
* @param pluginId the unique identifier of the plug-in
* (e.g. <code>"org.eclipse.core.resources"</code>)
* @param extensionPointName the simple identifier of the
* extension point (e.g. <code>"builders"</code>)
* @param extensionId the unique identifier of the extension
* (e.g. <code>"com.example.acme.coolbuilder</code>)
* @return the configuration elements
*/
public IConfigurationElement[] getConfigurationElementsFor(String pluginId, String extensionPointName, String extensionId);
/**
* Returns the specified extension in this plug-in registry,
* or <code>null</code> if there is no such extension.
* The first parameter identifies the extension point, and the second
* parameter identifies an extension plugged in to that extension point.
*
* @param extensionPointId the unique identifier of the extension point
* (e.g. <code>"org.eclipse.core.resources.builders"</code>)
* @param extensionId the unique identifier of the extension
* (e.g. <code>"com.example.acme.coolbuilder"</code>)
* @return the extension, or <code>null</code>
*/
public IExtension getExtension(String extensionPointId, String extensionId);
/**
* Returns the specified extension in this plug-in registry,
* or <code>null</code> if there is no such extension.
* The first two parameters identify the extension point, and the third
* parameter identifies an extension plugged in to that extension point.
*
* @param pluginId the unique identifier of the plug-in
* (e.g. <code>"org.eclipse.core.resources"</code>)
* @param extensionPointName the simple identifier of the
* extension point (e.g. <code>"builders"</code>)
* @param extensionId the unique identifier of the extension
* (e.g. <code>"com.example.acme.coolbuilder"</code>)
* @return the extension, or <code>null</code>
*/
public IExtension getExtension(String pluginId, String extensionPointName, String extensionId);
/**
* Returns the extension point with the given extension point identifier
* in this plug-in registry, or <code>null</code> if there is no such
* extension point.
*
* @param extensionPointId the unique identifier of the extension point
* (e.g., <code>"org.eclipse.core.resources.builders"</code>)
* @return the extension point, or <code>null</code>
*/
public IExtensionPoint getExtensionPoint(String extensionPointId);
/**
* Returns the extension point in this plug-in registry
* with the given plug-in identifier and extension point simple identifier,
* or <code>null</code> if there is no such extension point.
*
* @param pluginId the unique identifier of the plug-in
* (e.g. <code>"org.eclipse.core.resources"</code>)
* @param extensionPointName the simple identifier of the
* extension point (e.g. <code>" builders"</code>)
* @return the extension point, or <code>null</code>
*/
public IExtensionPoint getExtensionPoint(String pluginId, String extensionPointName);
/**
* Returns all extension points known to this plug-in registry.
* Returns an empty array if there are no extension points.
*
* @return the extension points known to this plug-in registry
*/
public IExtensionPoint[] getExtensionPoints();
/**
* Returns the plug-in descriptor with the given plug-in identifier
* in this plug-in registry, or <code>null</code> if there is no such
* plug-in. If there are multiple versions of the identified plug-in,
* one will be non-deterministically choosen and returned.
*
* @param pluginId the unique identifier of the plug-in
* (e.g. <code>"com.example.acme"</code>).
* @return the plug-in descriptor, or <code>null</code>
*/
public IPluginDescriptor getPluginDescriptor(String pluginId);
/**
* Returns the plug-in descriptor with the given plug-in identifier
* and version in this plug-in registry, or <code>null</code> if
* there is no such plug-in.
*
* @param pluginId the unique identifier of the plug-in
* (e.g. <code>"org.eclipse.core.resources"</code>).
* @param version plug-in version identifier
* @return the plug-in descriptor, or <code>null</code>
*/
public IPluginDescriptor getPluginDescriptor(String pluginId, PluginVersionIdentifier version);
/**
* Returns all plug-in descriptors known to this plug-in registry.
* Returns an empty array if there are no installed plug-ins.
*
* @return the plug-in descriptors known to this plug-in registry
*/
public IPluginDescriptor[] getPluginDescriptors();
/**
* Returns all versions of the identified plug-in descriptor
* known to this plug-in registry.
* Returns an empty array if there are no plug-ins
* with the specified identifier.
*
* @param pluginId the unique identifier of the plug-in
* (e.g. <code>"org.eclipse.core.resources"</code>).
* @return the plug-in descriptors known to this plug-in registry
*/
public IPluginDescriptor[] getPluginDescriptors(String pluginId);
}