Interface IConfigurationElement
plugin.xml
) file.
This interface also provides a way to create executable extension objects.
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 configuration element 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 and configuration element 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 or configuration element 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
Modifier and TypeMethodDescriptioncreateExecutableExtension
(String propertyName) Creates and returns a new instance of the executable extension identified by the named attribute of this configuration element.boolean
getAttribute
(String name) Returns the named attribute of this configuration element, ornull
if none.getAttribute
(String attrName, String locale) When multi-language support is enabled, this method returns the named attribute of this configuration element in the specified locale, ornull
if none.getAttributeAsIs
(String name) Deprecated.String[]
Returns the names of the attributes of this configuration element.Returns all configuration elements that are children of this configuration element.getChildren
(String name) Returns all child configuration elements with the given name.Returns the contributor of this configuration element.Returns the extension that declares this configuration element.int
Returns unique identifier of the registry object from which this element was created.getName()
Returns the name of this configuration element.Deprecated.As namespace is no longer restricted to the contributor name, usegetNamespaceIdentifier()
to obtain namespace name orgetContributor()
to get the name of the contributor of this registry element.Returns the namespace name for this configuration element.Returns the element which contains this element.getValue()
Returns the text value of this configuration element.When multi-language support is enabled, this method returns the text value of this configuration element in the specified locale, ornull
if none.Deprecated.The method is equivalent to thegetValue()
.boolean
isValid()
Returns whether this configuration element object is valid.
-
Method Details
-
createExecutableExtension
Creates and returns a new instance of the executable extension identified by the named attribute of this configuration element. The named attribute value must contain a fully qualified name of a Java class. The class can either refer to a class implementing the executable extension or to a factory capable of returning the executable extension.The specified class is instantiated using its 0-argument public constructor.
Then the following checks are done:
If the specified class implements theIExecutableExtension
interface, the methodIExecutableExtension.setInitializationData(IConfigurationElement, String, Object)
is called, passing to the object the configuration information that was used to create it.If the specified class implements
IExecutableExtensionFactory
interface, the methodIExecutableExtensionFactory.create()
is invoked.Unlike other methods on this object, invoking this method may activate the plug-in.
- Parameters:
propertyName
- the name of the property- Returns:
- the executable instance
- Throws:
CoreException
- if an instance of the executable extension could not be created for any reasonInvalidRegistryObjectException
- if this configuration element is no longer valid- See Also:
-
getAttribute
Returns the named attribute of this configuration element, ornull
if none.The names of configuration element attributes are the same as the attribute names of the corresponding XML element. For example, the configuration markup
<bg pattern="stripes"/>
corresponds to a configuration element named
"bg"
with an attribute named"pattern"
with attribute value"stripes"
.Note that any translation specified in the plug-in manifest file is automatically applied.
- Parameters:
name
- the name of the attribute- Returns:
- attribute value, or
null
if none - Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid
-
getAttribute
When multi-language support is enabled, this method returns the named attribute of this configuration element in the specified locale, ornull
if none.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
getAttribute(String)
.- Parameters:
attrName
- the name of the attributelocale
- the requested locale- Returns:
- attribute value, or
null
if none - Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid- Since:
- org.eclipse.equinox.registry 3.5
- See Also:
-
getAttributeAsIs
Deprecated.The method is equivalent to thegetAttribute(String)
. Contrary to its description, this method returns a translated value. Use thegetAttribute(String)
method instead.Returns the named attribute of this configuration element, ornull
if none.The names of configuration element attributes are the same as the attribute names of the corresponding XML element. For example, the configuration markup
<bg pattern="stripes"/>
corresponds to a configuration element named
"bg"
with an attribute named"pattern"
with attribute value"stripes"
.Note that any translation specified in the plug-in manifest file for this attribute is not automatically applied.
- Parameters:
name
- the name of the attribute- Returns:
- attribute value, or
null
if none - Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid
-
getAttributeNames
Returns the names of the attributes of this configuration element. Returns an empty array if this configuration element has no attributes.The names of configuration element attributes are the same as the attribute names of the corresponding XML element. For example, the configuration markup
<bg color="blue" pattern="stripes"/>
corresponds to a configuration element named
"bg"
with attributes named"color"
and"pattern"
.- Returns:
- the names of the attributes
- Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid
-
getChildren
Returns all configuration elements that are children of this configuration element. Returns an empty array if this configuration element has no children.Each child corresponds to a nested XML element in the configuration markup. For example, the configuration markup
<view> <verticalHint>top</verticalHint> <horizontalHint>left</horizontalHint> </view>
corresponds to a configuration element, named
"view"
, with two children.- Returns:
- the child configuration elements
- Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid- See Also:
-
getChildren
Returns all child configuration elements with the given name. Returns an empty array if this configuration element has no children with the given name.- Parameters:
name
- the name of the child configuration element- Returns:
- the child configuration elements with that name
- Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid- See Also:
-
getDeclaringExtension
Returns the extension that declares this configuration element.- Returns:
- the extension
- Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid
-
getName
Returns the name of this configuration element. The name of a configuration element is the same as the XML tag of the corresponding XML element. For example, the configuration markup<wizard name="Create Project"/>
corresponds to a configuration element named"wizard"
.- Returns:
- the name of this configuration element
- Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid
-
getParent
Returns the element which contains this element. If this element is an immediate child of an extension, the returned value can be downcast toIExtension
. Otherwise the returned value can be downcast toIConfigurationElement
.- Returns:
- the parent of this configuration element or
null
- Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid- Since:
- 3.0
-
getValue
Returns the text value of this configuration element. For example, the configuration markup<script lang="javascript">.\scripts\cp.js</script>
corresponds to a configuration element"script"
with value".\scripts\cp.js"
.Values may span multiple lines (i.e., contain carriage returns and/or line feeds).
Note that any translation specified in the plug-in manifest file is automatically applied.
- Returns:
- the text value of this configuration element or
null
- Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid
-
getValue
When multi-language support is enabled, this method returns the text value of this configuration element in the specified locale, ornull
if none.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
getValue()
.- Parameters:
locale
- the requested locale- Returns:
- the text value of this configuration element in the specified locale,
or
null
- Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid- Since:
- org.eclipse.equinox.registry 3.5
- See Also:
-
getValueAsIs
Deprecated.The method is equivalent to thegetValue()
. Contrary to its description, this method returns a translated value. Use thegetValue()
method instead.Returns the untranslated text value of this configuration element. For example, the configuration markup<script lang="javascript">.\scripts\cp.js</script>
corresponds to a configuration element"script"
with value".\scripts\cp.js"
.Values may span multiple lines (i.e., contain carriage returns and/or line feeds).
Note that translation specified in the plug-in manifest file is not automatically applied. For example, the configuration markup
<tooltip>#hattip</tooltip>
corresponds to a configuration element, named
"tooltip"
, with value"#hattip"
.- Returns:
- the untranslated text value of this configuration element or
null
- Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid
-
getNamespace
Deprecated.As namespace is no longer restricted to the contributor name, usegetNamespaceIdentifier()
to obtain namespace name orgetContributor()
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 ofMyId
, the namespace of the element was always set toorg.abc
, producing the qualified name oforg.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 specifyorg.zzz.MyExtPoint
as an Id. In this case, namespace name isorg.zzz
, but the contributor name isorg.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, usegetContributor()
. 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, usegetNamespaceIdentifier()
. 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 theorg.abc
namespace would fall into this category.Returns the namespace for this configuration element. This value can be used in various global facilities to discover this configuration element's contributor.- Returns:
- the namespace for this configuration element
- Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid- Since:
- 3.1
- See Also:
-
getNamespaceIdentifier
Returns the namespace name for this configuration element.- Returns:
- the namespace name for this configuration element
- Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid- Since:
- org.eclipse.equinox.registry 3.2
-
getContributor
Returns the contributor of this configuration element.- Returns:
- the contributor for this configuration element
- Throws:
InvalidRegistryObjectException
- if this configuration element is no longer valid- Since:
- org.eclipse.equinox.registry 3.2
-
equals
-
isValid
boolean isValid()Returns whether this configuration element object is valid.- Returns:
true
if the object is valid, andfalse
if it is no longer valid- Since:
- 3.1
-
getHandleId
int getHandleId()Returns unique identifier of the registry object from which this element was created. Two configuration element instances are considered to be equal if their handle id's are same.- Returns:
- The handle id of the registry object from which this configuration element was created.
- Since:
- 3.8
- See Also:
-
getAttribute(String)
.