Eclipse Platform
Release 3.1

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 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)
          Returns the named attribute of this configuration element, or null if none.
 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.
 IExtension getDeclaringExtension()
          Returns the extension that declares this configuration element.
 String getName()
          Returns the name of this configuration element.
 String getNamespace()
          Returns the namespace 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()
          Returns the untranslated text value of this configuration element.
 boolean isValid()
          Returns whether this configuration element object is valid.
 

Method Detail

createExecutableExtension

public 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
See Also:
IExecutableExtension.setInitializationData(IConfigurationElement, String, Object), IExecutableExtensionFactory

getAttribute

public 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

public String getAttributeAsIs(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 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public String getValueAsIs()
                    throws InvalidRegistryObjectException
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

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

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

equals

public boolean equals(Object o)

isValid

public 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

Eclipse Platform
Release 3.1

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2005. All rights reserved.