Package org.eclipse.birt.core.framework

# Interface IConfigurationElement

public interface IConfigurationElement
This interface is the same as the Eclipse platform `IConfigurationElement` interface. 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.

This interface is not intended to be implemented by clients.

## Method Summary

Modifier and Type
Method
Description
`Object`
`createExecutableExtension(String propertyName)`
Creates and returns a new instance of the executable extension identified by the named attribute of this configuration element.
`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.
`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.

## Method Details

### createExecutableExtension

Object createExecutableExtension(String propertyName) throws FrameworkException
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 implementing the executable extension.

The specified class is instantiated using its 0-argument public constructor. If the specified class implements the `IExecutableExtension` interface, the method `setInitializationData` is called, passing to the object the configuration information that was used to create it.

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:
  `FrameworkException` - if an instance of the executable extension could not be created for any reason.
See Also:
  - `IExecutableExtension.setInitializationData(IConfigurationElement, String, Object)`

### getAttribute

String getAttribute(String name)
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

### getAttributeAsIs

String getAttributeAsIs(String name)
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

### getAttributeNames

String[] 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

### getChildren

IConfigurationElement[] 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>
     invalid input: '&nbsp'invalid input: '&nbsp'invalid input: '&nbsp'invalid input: '&nbsp'<verticalHint>top</verticalHint>
     invalid input: '&nbsp'invalid input: '&nbsp'invalid input: '&nbsp'invalid input: '&nbsp'<horizontalHint>left</horizontalHint>
     </view>

corresponds to a configuration element, named `"view"`, with two children.

Returns:
  the child configuration elements
See Also:
  - `getChildren(String)`

### getChildren

IConfigurationElement[] getChildren(String name)
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
See Also:
  - `getChildren()`

### getDeclaringExtension

IExtension getDeclaringExtension()
Returns the extension that declares this configuration element.

Returns:
  the extension

### getName

String 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

### getParent

Object getParent()
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`
Since:
  3.0

### getValue

String 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`

### getValueAsIs

String getValueAsIs()
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`