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
|
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. |
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
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
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.