Eclipse Platform Release 3.7

## 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 can be used without OSGi running.

This interface is not intended to be implemented by clients.

Restriction:
  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.
`IContributor` `getContributor()` Returns the contributor of this extension point.
`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` `getLabel(String locale)` When multi-language support is enabled, this method returns a displayable label for this extension point in the specified locale.

`String`

`getNamespace()`
Deprecated. As namespace is no longer restricted to the contributor name, use `getNamespaceIdentifier()` to obtain namespace name or `getContributor()` to get the name of the contributor of this registry element.

In the past namespace was dictated by the name of the bundle. If bundle `org.abc` contributed registry element with Id of `MyId`, the namespace of the element was always set to `org.abc`, producing the qualified name of `org.abc.MyId`.

The namespace used to be the same as the bundle name. As a result, the `getNamespace()` method was used both to obtain the name of the bundle and to obtain the namespace of a registry element.

Since 3.2, the extension registry allows elements to specify qualified name. The extension point of the plug-in `org.abc` could specify `org.zzz.MyExtPoint` as an Id. In this case, namespace name is `org.zzz`, but the contributor name is `org.abc`.

(The use of a simple Id is still a preferred way. Whenever possible, specify only the simple Id and let runtime take care of the rest.)

If your code used the `getNamespace()` to obtain the name of the contributing bundle, use `getContributor()`. The typical usage pattern here is to find a bundle name to obtain some information from the corresponding OSGi bundle. For example, deducing the file location specified as a relative path to the bundle install location would fall into this group.

If your code used the `getNamespace()` to obtain the namespace of the registry element, use `getNamespaceIdentifier()`. Typically, this is the case when code is trying to process registry elements belonging to some logical group. For example, processing notifications for all elements belonging to the `org.abc` namespace would fall into this category.

`String` `getNamespaceIdentifier()` Returns the namespace name 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

    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

### getNamespace

    String getNamespace()
                        throws InvalidRegistryObjectException

  Deprecated. As namespace is no longer restricted to the contributor name, use `getNamespaceIdentifier()` to obtain namespace name or `getContributor()` to get the name of the contributor of this registry element.

  In the past namespace was dictated by the name of the bundle. If bundle `org.abc` contributed registry element with Id of `MyId`, the namespace of the element was always set to `org.abc`, producing the qualified name of `org.abc.MyId`.

  The namespace used to be the same as the bundle name. As a result, the `getNamespace()` method was used both to obtain the name of the bundle and to obtain the namespace of a registry element.

  Since 3.2, the extension registry allows elements to specify qualified name. The extension point of the plug-in `org.abc` could specify `org.zzz.MyExtPoint` as an Id. In this case, namespace name is `org.zzz`, but the contributor name is `org.abc`.

  (The use of a simple Id is still a preferred way. Whenever possible, specify only the simple Id and let runtime take care of the rest.)

  If your code used the `getNamespace()` to obtain the name of the contributing bundle, use `getContributor()`. The typical usage pattern here is to find a bundle name to obtain some information from the corresponding OSGi bundle. For example, deducing the file location specified as a relative path to the bundle install location would fall into this group.

  If your code used the `getNamespace()` to obtain the namespace of the registry element, use `getNamespaceIdentifier()`. Typically, this is the case when code is trying to process registry elements belonging to some logical group. For example, processing notifications for all elements belonging to the `org.abc` namespace would fall into this category.

  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:
    `IExtensionRegistry`

### getNamespaceIdentifier

    String getNamespaceIdentifier()
                                  throws InvalidRegistryObjectException

  Returns the namespace name for this extension point.

  Returns:
    the namespace name for this extension point
  Throws:
    `InvalidRegistryObjectException` - if this extension point is no longer valid
  Since:
    org.eclipse.equinox.registry 3.2

### getContributor

    IContributor getContributor()
                                throws InvalidRegistryObjectException

  Returns the contributor of this extension point.

  Returns:
    the contributor for this extension point
  Throws:
    `InvalidRegistryObjectException` - if this extension point is no longer valid
  Since:
    org.eclipse.equinox.registry 3.2

### getExtension

    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

    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

    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

### getLabel

    String getLabel(String locale)
                    throws InvalidRegistryObjectException

  When multi-language support is enabled, this method returns a displayable label for this extension point in the specified locale. Returns the empty string if no label for this extension point is specified in the plug-in manifest file.

  The locale matching tries to find the best match between available translations and the requested locale, falling back to a more generic locale ("en") when the specific locale ("en_US") is not available.

  If multi-language support is not enabled, this method is equivalent to the method `getLabel()`.

  Parameters:
    `locale` - the requested locale
  Returns:
    a displayable string label for this extension point, possibly the empty string
  Throws:
    `InvalidRegistryObjectException` - if this extension point is no longer valid
  Since:
    3.5
  See Also:
    `IExtensionRegistry.isMultiLanguage()`

### getSchemaReference

    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

    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 namespace.

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

### getUniqueIdentifier

    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

    boolean equals(Object o)

  Overrides:
    `equals` in class `Object`

### isValid

    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.7

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2011. All rights reserved.