Package org.eclipse.pde.core.plugin

## Interface IPluginElement

All Superinterfaces:
  `IAdaptable`, `IPluginObject`, `IPluginParent`, `IWritable`

    public interface IPluginElement
    extends IPluginParent

Classes that implement this interface model the XML elements found in the plug-in model.

Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

### Field Summary

Fields
`static String` `P_ATTRIBUTE` A property name that will be used to notify individual change in an element's attribute.
`static String` `P_ATTRIBUTES` A property name that will be used to notify about global replacement of the element's attributes.
`static String` `P_TEXT` A property name that will be used to notify about element body text change.

### Fields inherited from interface org.eclipse.pde.core.plugin.IPluginObject

`P_NAME`

### Fields inherited from interface org.eclipse.pde.core.plugin.IPluginParent

`P_SIBLING_ORDER`

### Method Summary

All Methods Instance Methods Abstract Methods
`IPluginElement` `createCopy()` Creates an identical copy of this XML element.
`IPluginAttribute` `getAttribute​(String name)` Returns an attribute object whose name matches the provided name.
`int` `getAttributeCount()` Returns the number of attributes in this element.
`IPluginAttribute[]` `getAttributes()` Returns all attributes currently defined in this element
`Object` `getElementInfo()` Returns the schema for this element.
`String` `getText()` Returns the body text of this element.
`void` `setAttribute​(String name, String value)` Sets the attribute with the provided name to the provided value.
`void` `setText​(String text)` Sets the body text of this element to the provided value.

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Methods inherited from interface org.eclipse.pde.core.plugin.IPluginObject

`getModel, getName, getParent, getPluginBase, getPluginModel, getResourceString, getTranslatedName, isInTheModel, isValid, setInTheModel, setName`

### Methods inherited from interface org.eclipse.pde.core.plugin.IPluginParent

`add, add, getChildCount, getChildren, getIndexOf, remove, swap`

### Methods inherited from interface org.eclipse.pde.core.IWritable

`write`

### Field Detail

#### P_TEXT

    static final String P_TEXT

A property name that will be used to notify about element body text change.

See Also:
  Constant Field Values

#### P_ATTRIBUTES

    static final String P_ATTRIBUTES

A property name that will be used to notify about global replacement of the element's attributes.

See Also:
  Constant Field Values

#### P_ATTRIBUTE

    static final String P_ATTRIBUTE

A property name that will be used to notify individual change in an element's attribute.

See Also:
  Constant Field Values

### Method Detail

#### createCopy

    IPluginElement createCopy()

Creates an identical copy of this XML element. The new element will share the same model and the parent.

Returns:
  a copy of this element

#### getAttribute

    IPluginAttribute getAttribute​(String name)

Returns an attribute object whose name matches the provided name.

Parameters:
  `name` - the name of the attribute
Returns:
  the attribute object, or `null` if not found

#### getAttributes

    IPluginAttribute[] getAttributes()

Returns all attributes currently defined in this element

Returns:
  an array of attribute objects that belong to this element

#### getAttributeCount

    int getAttributeCount()

Returns the number of attributes in this element.

Returns:
  number of attributes defined in this element

#### getText

    String getText()

Returns the body text of this element.

Returns:
  body text of this element or `null` if not set.

#### getElementInfo

    Object getElementInfo()

Returns the schema for this element.

This information is exposed here as implementation side-effect and should not be used by clients.

Returns:
  the schema for this element or `null` if not found.

#### setAttribute

    void setAttribute​(String name,
                      String value)
               throws CoreException

Sets the attribute with the provided name to the provided value. If attribute object is not found, a new one will be created and its value set to the provided value. This method will throw a CoreException if the model is not editable.

Parameters:
  `name` - the name of the attribute
  `value` - the value to be set
Throws:
  `CoreException` - if the model is not editable

#### setText

    void setText​(String text)
          throws CoreException

Sets the body text of this element to the provided value. This method will throw a CoreException if the model is not editable.

Parameters:
  `text` - the new body text of this element
Throws:
  `CoreException` - if the model is not editable