|
|
|
|
org.eclipse.core.runtime
Interface IConfigurationElement
-
public interface IConfigurationElement
A configuration element, with its attributes and children,
directly reflects the content and structure of the extension section
within the declaring plug-in's manifest (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
|
Object
|
createExecutableExtension
(
String propertyName)
Creates and returns a new instance of the executable extension
identified by the named attribute of this configuration element. |
boolean
|
equals
(
Object o)
|
String
|
getAttribute
(
String name)
Returns the named attribute of this configuration element, or
null if none. |
String
|
getAttributeAsIs
(
String name)
Deprecated. The method is equivalent to the
getAttribute(String) . Contrary to its description,
this method returns a translated value. Use the
getAttribute(String) method instead.
|
String[]
|
getAttributeNames
()
Returns the names of the attributes of this configuration element. |
IConfigurationElement[]
|
getChildren
()
Returns all configuration elements that are children of this
configuration element. |
IConfigurationElement[]
|
getChildren
(
String name)
Returns all child configuration elements with the given name. |
IContributor
|
getContributor
()
Returns the contributor of this configuration element. |
IExtension
|
getDeclaringExtension
()
Returns the extension that declares this configuration element. |
String
|
getName
()
Returns the name of this configuration element. |
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 configuration element. |
Object
|
getParent
()
Returns the element which contains this element. |
String
|
getValue
()
Returns the text value of this configuration element. |
String
|
getValueAsIs
()
Deprecated. The method is equivalent to the
getValue() . Contrary to its description,
this method returns a translated value. Use the
getValue() method instead.
|
boolean
|
isValid
()
Returns whether this configuration element object is valid. |
createExecutableExtension
Object createExecutableExtension(
String propertyName)
throws
CoreException
- 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 the
IExecutableExtension
interface, the method
IExecutableExtension.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 method
IExecutableExtensionFactory.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 reason
-
InvalidRegistryObjectException
- if this configuration element is no longer valid -
See Also:
-
IExecutableExtension.setInitializationData(IConfigurationElement, String, Object) ,
IExecutableExtensionFactory
getAttribute
String getAttribute(
String name)
throws
InvalidRegistryObjectException
- Returns the named attribute of this configuration element, or
null 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
getAttributeAsIs
String getAttributeAsIs(
String name)
throws
InvalidRegistryObjectException
-
Deprecated. The method is equivalent to the
getAttribute(String) . Contrary to its description,
this method returns a translated value. Use the
getAttribute(String) method instead.
- Returns the named attribute of this configuration element, or
null 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
String[] getAttributeNames()
throws
InvalidRegistryObjectException
- 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
IConfigurationElement[] getChildren()
throws
InvalidRegistryObjectException
- 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(String)
getChildren
IConfigurationElement[] getChildren(
String name)
throws
InvalidRegistryObjectException
- 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:
-
getChildren()
getDeclaringExtension
IExtension getDeclaringExtension()
throws
InvalidRegistryObjectException
- Returns the extension that declares this configuration element.
-
-
Returns:
- the extension
-
Throws:
-
InvalidRegistryObjectException
- if this configuration element is no longer valid
getName
String getName()
throws
InvalidRegistryObjectException
- 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
Object getParent()
throws
InvalidRegistryObjectException
- Returns the element which contains this element. If this element
is an immediate child of an extension, the
returned value can be downcast to
IExtension .
Otherwise the returned value can be downcast to
IConfigurationElement .
-
-
Returns:
- the parent of this configuration element
or
null
-
Throws:
-
InvalidRegistryObjectException
- if this configuration element is no longer valid -
Since:
- 3.0
getValue
String getValue()
throws
InvalidRegistryObjectException
- 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
getValueAsIs
String getValueAsIs()
throws
InvalidRegistryObjectException
-
Deprecated. The method is equivalent to the
getValue() . Contrary to its description,
this method returns a translated value. Use the
getValue() 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
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 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:
-
IExtensionRegistry
getNamespaceIdentifier
String getNamespaceIdentifier()
throws
InvalidRegistryObjectException
- 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
IContributor getContributor()
throws
InvalidRegistryObjectException
- 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
boolean equals(
Object o)
-
-
Overrides:
-
equals
in class
Object
-
isValid
boolean isValid()
- Returns whether this configuration element 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.
|
|
|