Eclipse Platform
Release 3.1

org.eclipse.core.runtime
Interface IExtension


public interface IExtension

An extension declared in a plug-in. All information 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 objects, the most common case is code in a plug-in dealing with extensions contributed to one of the extension points it declares. Code in a plug-in that has declared that it is not dynamic aware (or not declared anything) can 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 when accessing the extension objects because they become invalid if the contributing 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 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 declared by this extension.
 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.
 String getExtensionPointUniqueIdentifier()
          Returns the unique identifier of the extension point to which this extension should be contributed.
 String getLabel()
          Returns a displayable label for this extension.
 String getNamespace()
          Returns the namespace for this extension.
 String getSimpleIdentifier()
          Returns the simple identifier of this extension, or null if this extension does not have an identifier.
 String getUniqueIdentifier()
          Returns the unique identifier of this extension, or null if this extension does not have an identifier.
 boolean isValid()
          Returns whether this extension object is valid.
 

Method Detail

getConfigurationElements

public IConfigurationElement[] getConfigurationElements()
                                                 throws InvalidRegistryObjectException
Returns all configuration elements declared by this extension. These elements are a direct reflection of the configuration markup supplied in the manifest (plugin.xml) file for the plug-in that declares this extension. Returns an empty array if this extension does not declare any configuration elements.

Returns:
the configuration elements declared by this extension
Throws:
InvalidRegistryObjectException - if this extension 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.

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

getNamespace

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

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

getExtensionPointUniqueIdentifier

public String getExtensionPointUniqueIdentifier()
                                         throws InvalidRegistryObjectException
Returns the unique identifier of the extension point to which this extension should be contributed.

Returns:
the unique identifier of the relevant extension point
Throws:
InvalidRegistryObjectException - if this extension is no longer valid

getLabel

public String getLabel()
                throws InvalidRegistryObjectException
Returns a displayable label for this extension. Returns the empty string if no label for this extension 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, possibly the empty string
Throws:
InvalidRegistryObjectException - if this extension is no longer valid

getSimpleIdentifier

public String getSimpleIdentifier()
                           throws InvalidRegistryObjectException
Returns the simple identifier of this extension, or null if this extension does not have an identifier. This identifier is specified in the plug-in manifest (plugin.xml) file as a non-empty string containing no period characters ('.') and must be unique within the defining plug-in.

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

getUniqueIdentifier

public String getUniqueIdentifier()
                           throws InvalidRegistryObjectException
Returns the unique identifier of this extension, or null if this extension does not have an identifier. If available, this identifier is unique within the plug-in registry, and is composed of the namespace where this extension was declared and this extension's simple identifier.

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

equals

public boolean equals(Object o)

isValid

public boolean isValid()
Returns whether this extension 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.