org.eclipse.pde.core.plugin

## Interface IPluginParent

All Superinterfaces:
  IAdaptable, IPluginObject, IWritable

All Known Subinterfaces:
  IPluginElement, IPluginExtension

    public interface IPluginParent
    extends IPluginObject

Classes that implement this interface are capable of containing other plug-in objects.

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_SIBLING_ORDER` A property that will be used when firing notification of the sibling swap.

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

`P_NAME`

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `add(int index, IPluginObject child)` Adds a child object at the specified index.
`void` `add(IPluginObject child)` Adds a child object.
`int` `getChildCount()` Returns the number of children currently owned by this parent.
`IPluginObject[]` `getChildren()` Returns the children owned by this parent.
`int` `getIndexOf(IPluginObject child)` Returns the position of the child in this parent.
`void` `remove(IPluginObject child)` Removes a child object.
`void` `swap(IPluginObject child1, IPluginObject child2)` Swaps the position of of the provided siblings in the parent.

### 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.IWritable

`write`

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

`getAdapter`

### Field Detail

#### P_SIBLING_ORDER

    static final String P_SIBLING_ORDER

A property that will be used when firing notification of the sibling swap.

See Also:
  Constant Field Values

### Method Detail

#### add

    void add(int index,
             IPluginObject child)
      throws CoreException

Adds a child object at the specified index. This method may throw a CoreException if the model is not editable.

Parameters:
  `index` - the location of the child
  `child` - the object to add
Throws:
  `CoreException` - if the model is not editable

#### add

    void add(IPluginObject child)
      throws CoreException

Adds a child object. This method may throw a CoreException if the model is not editable.

Parameters:
  `child` - the object to add
Throws:
  `CoreException` - if the model is not editable

#### getChildCount

    int getChildCount()

Returns the number of children currently owned by this parent. Returns 0 if this is a lightweight model.

Returns:
  the number of children

#### getIndexOf

    int getIndexOf(IPluginObject child)

Returns the position of the child in this parent.

Parameters:
  `child` - a child of this parent
Returns:
  a 0-based index of the child

#### swap

    void swap(IPluginObject child1,
              IPluginObject child2)
       throws CoreException

Swaps the position of of the provided siblings in the parent.

Parameters:
  `child1` - the first child
  `child2` - the second child
Throws:
  `CoreException` - thrown if the model is not editable.

#### getChildren

    IPluginObject[] getChildren()

Returns the children owned by this parent. Returns an empty array if this is a lightweight model.

Returns:
  an array of children

#### remove

    void remove(IPluginObject child)
         throws CoreException

Removes a child object. This method may throw a CoreException if the model is not editable.

Parameters:
  `child` - the object to remove
Throws:
  `CoreException` - if the model is not editable