org.eclipse.pde.core.plugin

## Interface IPluginObject

All Superinterfaces:
  IAdaptable, IWritable

All Known Subinterfaces:
  IExtensions, IFragment, IPlugin, IPluginAttribute, IPluginBase, IPluginElement, IPluginExtension, IPluginExtensionPoint, IPluginImport, IPluginLibrary, IPluginParent

    public interface IPluginObject
    extends IWritable, IAdaptable

A base interface for all the objects 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_NAME` A property name that will be used to notify that the "name" field has changed.

### Method Summary

All Methods Instance Methods Abstract Methods
`ISharedPluginModel` `getModel()` Returns the model that owns this object.
`String` `getName()` Returns the name of this model object
`IPluginObject` `getParent()` Returns the parent of this model object.
`IPluginBase` `getPluginBase()` Returns the top-level model object.
`IPluginModelBase` `getPluginModel()` Returns the model that owns this object.
`String` `getResourceString(String key)` Returns a string by locating the provided key in the resource bundle associated with the model.
`String` `getTranslatedName()` Returns the translated name of this model object using the result of 'getName()' call as a resource key.
`boolean` `isInTheModel()` Returns true if this object is currently part of a model.
`boolean` `isValid()` Returns `true` if this object has all the required attributes set, `false` otherwise.
`void` `setInTheModel(boolean inModel)` Set the value indicating whether the object is currently part of a model.
`void` `setName(String name)` Chances the name of this model object.

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

`write`

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

`getAdapter`

### Field Detail

#### P_NAME

    static final String P_NAME

A property name that will be used to notify that the "name" field has changed.

See Also:
  Constant Field Values

### Method Detail

#### getModel

    ISharedPluginModel getModel()

Returns the model that owns this object.

Returns:
  the model instance

#### getPluginModel

    IPluginModelBase getPluginModel()

Returns the model that owns this object.

Returns:
  the model instance

#### getName

    String getName()

Returns the name of this model object

Returns:
  the object name

#### isInTheModel

    boolean isInTheModel()

Returns true if this object is currently part of a model. It is useful to ignore modification events of objects that have not yet being added to the model or if they have been removed.

Returns:
  whether this object is currently part of a model

#### setInTheModel

    void setInTheModel(boolean inModel)

Set the value indicating whether the object is currently part of a model. It is useful to ignore modification events of objects that have not yet being added to the model or if they have been removed.

Parameters:
  `inModel` - whether the object is currently part of a model

#### getTranslatedName

    String getTranslatedName()

Returns the translated name of this model object using the result of 'getName()' call as a resource key.

Returns:
  the translated name or the original name if not found

#### getParent

    IPluginObject getParent()

Returns the parent of this model object.

Returns:
  the object's parent

#### getPluginBase

    IPluginBase getPluginBase()

Returns the top-level model object.

Returns:
  the top-level model object

#### getResourceString

    String getResourceString(String key)

Returns a string by locating the provided key in the resource bundle associated with the model.

Parameters:
  `key` - the name to use for resource bundle lookup
Returns:
  value in the resource bundle for the provided key, or the key itself if not found.

#### setName

    void setName(String name)
          throws CoreException

Chances the name of this model object. This method may throw a CoreException if the model is not editable.

Parameters:
  `name` - the new object name
Throws:
  `CoreException` - if the model is not editable

#### isValid

    boolean isValid()

Returns `true` if this object has all the required attributes set, `false` otherwise.

Returns:
  `true` if all the required attributes are set.