Package 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
Modifier and Type
Field
Description
`static final 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

Modifier and Type
Method
Description
`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.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.IWritable

`write`

## Field Details

### 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 Details

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