Eclipse Platform
Release 3.1

org.eclipse.core.runtime
Interface IExtensionPoint


public interface IExtensionPoint

An extension point declared in a plug-in. Except for the list of extensions plugged in to it, the information available for an extension point is obtained from the declaring plug-in's manifest (plugin.xml) file.

These registry objects are intended for relatively short-term use. Clients that deal with these objects must be aware that they may become invalid if the declaring plug-in is updated or uninstalled. If this happens, all methods except isValid() will throw InvalidRegistryObjectException. For extension point objects, the most common case is code in a plug-in dealing with one of the extension points it declares. These extension point objects are guaranteed to be valid while the plug-in is active. Code in a plug-in that has declared that it is not dynamic aware (or not declared anything) can also safely ignore this issue, since the registry would not be modified while it is active. However, code in a plug-in that declares that it is dynamic aware must be careful if it access the extension point object of a different plug-in, because it's at risk if that other plug-in is removed. Similarly, tools that analyze or display the extension registry are vulnerable. Client code can pre-test for invalid objects by calling isValid(), which never throws this exception. However, pre-tests are usually not sufficient because of the possibility of the extension point object becoming invalid as a result of a concurrent activity. At-risk clients must treat InvalidRegistryObjectException as if it were a checked exception. Also, such clients should probably register a listener with the extension registry so that they receive notification of any changes to the registry.

This interface is not intended to be implemented by clients.


Method Summary
 boolean equals(Object o)
           
 IConfigurationElement[] getConfigurationElements()
          Returns all configuration elements from all extensions configured into this extension point.
 IPluginDescriptor getDeclaringPluginDescriptor()
          Deprecated. IPluginDescriptor is not part of the new runtime and its function has been split over several parts of the new runtime. This method is not available (returns null) if the compatibility layer is not installed. Use getNamespace() to get the symbolic id of the declaring plugin. See IPluginDescriptor to see how to update your use-cases.
 IExtension getExtension(String extensionId)
          Returns the extension with the given unique identifier configured into this extension point, or null if there is no such extension.
 IExtension[] getExtensions()
          Returns all extensions configured into this extension point.
 String getLabel()
          Returns a displayable label for this extension point.
 String getNamespace()
          Returns the namespace for this extension point.
 String getSchemaReference()
          Returns reference to the extension point schema.
 String getSimpleIdentifier()
          Returns the simple identifier of this extension point.
 String getUniqueIdentifier()
          Returns the unique identifier of this extension point.
 boolean isValid()
          Returns whether this extension point object is valid.
 

Method Detail

getConfigurationElements

public IConfigurationElement[] getConfigurationElements()
                                                 throws InvalidRegistryObjectException
Returns all configuration elements from all extensions configured into this extension point. Returns an empty array if this extension point has no extensions configured, or none of the extensions contain configuration elements.

Returns:
the configuration elements for all extension configured into this extension point
Throws:
InvalidRegistryObjectException - if this extension point is no longer valid

getDeclaringPluginDescriptor

public IPluginDescriptor getDeclaringPluginDescriptor()
                                               throws InvalidRegistryObjectException
Deprecated. IPluginDescriptor is not part of the new runtime and its function has been split over several parts of the new runtime. This method is not available (returns null) if the compatibility layer is not installed. Use getNamespace() to get the symbolic id of the declaring plugin. See IPluginDescriptor to see how to update your use-cases.

Returns the descriptor of the plug-in that declares this extension point.

Returns:
the plug-in that declares this extension point
Throws:
InvalidRegistryObjectException - if this extension point is no longer valid

getNamespace

public String getNamespace()
                    throws InvalidRegistryObjectException
Returns the namespace for this extension point. This value can be used in various global facilities to discover this extension point's provider.

Returns:
the namespace for this extension point
Throws:
InvalidRegistryObjectException - if this extension point is no longer valid
Since:
3.0
See Also:
Platform.getBundle(String), IExtensionRegistry

getExtension

public IExtension getExtension(String extensionId)
                        throws InvalidRegistryObjectException
Returns the extension with the given unique identifier configured into this extension point, or null if there is no such extension. Since an extension might not have an identifier, some extensions can only be found via the getExtensions method.

Parameters:
extensionId - the unique identifier of an extension (e.g. "com.example.acme.main").
Returns:
an extension, or null
Throws:
InvalidRegistryObjectException - if this extension point is no longer valid

getExtensions

public IExtension[] getExtensions()
                           throws InvalidRegistryObjectException
Returns all extensions configured into this extension point. Returns an empty array if this extension point has no extensions.

Returns:
the extensions configured into this extension point
Throws:
InvalidRegistryObjectException - if this extension point is no longer valid

getLabel

public String getLabel()
                throws InvalidRegistryObjectException
Returns a displayable label for this extension point. Returns the empty string if no label for this extension point is specified in the plug-in manifest file.

Note that any translation specified in the plug-in manifest file is automatically applied.

Returns:
a displayable string label for this extension point, possibly the empty string
Throws:
InvalidRegistryObjectException - if this extension point is no longer valid

getSchemaReference

public String getSchemaReference()
                          throws InvalidRegistryObjectException
Returns reference to the extension point schema. The schema reference is returned as a URL path relative to the plug-in installation URL. Returns the empty string if no schema for this extension point is specified in the plug-in manifest file.

Returns:
a relative URL path, or an empty string
Throws:
InvalidRegistryObjectException - if this extension point is no longer valid

getSimpleIdentifier

public String getSimpleIdentifier()
                           throws InvalidRegistryObjectException
Returns the simple identifier of this extension point. This identifier is a non-empty string containing no period characters ('.') and is guaranteed to be unique within the defining plug-in.

Returns:
the simple identifier of the extension point (e.g. "builders")
Throws:
InvalidRegistryObjectException - if this extension point is no longer valid

getUniqueIdentifier

public String getUniqueIdentifier()
                           throws InvalidRegistryObjectException
Returns the unique identifier of this extension point. This identifier is unique within the plug-in registry, and is composed of the namespace for this extension point and this extension point's simple identifier.

Returns:
the unique identifier of the extension point (e.g. "org.eclipse.core.resources.builders")
Throws:
InvalidRegistryObjectException - if this extension point is no longer valid

equals

public boolean equals(Object o)

isValid

public boolean isValid()
Returns whether this extension point object is valid.

Returns:
true if the object is valid, and false if it is no longer valid
Since:
3.1

Eclipse Platform
Release 3.1

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2005. All rights reserved.