# Class DefaultSaveable

java.lang.Object
org.eclipse.ui.internal.InternalSaveable
org.eclipse.ui.Saveable
org.eclipse.ui.internal.DefaultSaveable

All Implemented Interfaces:
  `IAdaptable`

public class DefaultSaveable extends Saveable
A default `Saveable` implementation that wrappers a regular workbench part (one that does not itself adapt to Saveable).

Since:
  3.2

## Constructor Summary

Constructors
Constructor
Description
`DefaultSaveable(IWorkbenchPart part)`
Creates a new DefaultSaveable.

## Method Summary

Modifier and Type
Method
Description
`void`
`doSave(IProgressMonitor monitor)`
Saves the contents of this saveable.
`boolean`
`equals(Object obj)`
Clients must implement equals and hashCode as defined in `Object.equals(Object)` and `Object.hashCode()`.
`ImageDescriptor`
`getImageDescriptor()`
Returns the image descriptor for this saveable.
`String`
`getName()`
Returns the name of this saveable for display purposes.
`String`
`getToolTipText()`
Returns the tool tip text for this saveable.
`int`
`hashCode()`
Clients must implement equals and hashCode as defined in `Object.equals(Object)` and `Object.hashCode()`.
`boolean`
`isDirty()`
Returns whether the contents of this saveable have changed since the last save operation.
`boolean`
`show(IWorkbenchPage page)`
Attempts to show this saveable in the given page and returns `true` on success.

### Methods inherited from class Saveable

`disableUI, doSave, enableUI, getAdapter`

### Methods inherited from class Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### DefaultSaveable

public DefaultSaveable(IWorkbenchPart part)
Creates a new DefaultSaveable.

Parameters:
  `part` - the part represented by this model

## Method Details

### doSave

public void doSave(IProgressMonitor monitor)
Description copied from class: `Saveable`
Saves the contents of this saveable.

If the save is cancelled through user action, or for any other reason, the part should invoke `setCancelled` on the `IProgressMonitor` to inform the caller.

This method is long-running; progress and cancellation are provided by the given progress monitor.

Specified by:
  `doSave` in class `Saveable`
Parameters:
  `monitor` - the progress monitor

### getName

public String getName()
Description copied from class: `Saveable`
Returns the name of this saveable for display purposes.

Specified by:
  `getName` in class `Saveable`
Returns:
  the model's name; never `null`.

### getImageDescriptor

public ImageDescriptor getImageDescriptor()
Description copied from class: `Saveable`
Returns the image descriptor for this saveable.

Specified by:
  `getImageDescriptor` in class `Saveable`
Returns:
  the image descriptor for this model; may be `null` if there is no image

### getToolTipText

public String getToolTipText()
Description copied from class: `Saveable`
Returns the tool tip text for this saveable. This text is used to differentiate between two inputs with the same name. For instance, MyClass.java in folder X and MyClass.java in folder Y. The format of the text varies between input types.

Specified by:
  `getToolTipText` in class `Saveable`
Returns:
  the tool tip text; never `null`

### isDirty

public boolean isDirty()
Description copied from class: `Saveable`
Returns whether the contents of this saveable have changed since the last save operation.

Note: this method is called frequently, for example by actions to determine their enabled status.

Specified by:
  `isDirty` in class `Saveable`
Returns:
  `true` if the contents have been modified and need saving, and `false` if they have not changed since the last save

### hashCode

public int hashCode()
Description copied from class: `Saveable`
Clients must implement equals and hashCode as defined in `Object.equals(Object)` and `Object.hashCode()`. Two saveables should be equal if their dirty state is shared, and saving one will save the other. If two saveables are equal, their hash codes MUST be the same, and their names, tooltips, and images should be the same because only one of them will be shown when prompting the user to save.

IMPORTANT: Implementers should ensure that the hashCode returned is sufficiently unique so as not to collide with hashCodes returned by other implementations. It is suggested that the defining plug-in's ID be used as part of the returned hashCode, as in the following example:

        int PRIME = 31;
        int hash = ...; // compute the "normal" hash code, e.g. based on some identifier unique within the defining plug-in
        return hash * PRIME + MY_PLUGIN_ID.hashCode();

Specified by:
  `hashCode` in class `Saveable`
Returns:
  a hash code

### equals

public boolean equals(Object obj)
Description copied from class: `Saveable`
Clients must implement equals and hashCode as defined in `Object.equals(Object)` and `Object.hashCode()`. Two saveables should be equal if their dirty state is shared, and saving one will save the other. If two saveables are equal, their names, tooltips, and images should be the same because only one of them will be shown when prompting the user to save.

Specified by:
  `equals` in class `Saveable`
Parameters:
  `obj` - the object to compare
Returns:
  true if this Saveable is equal to the given object

### show

public boolean show(IWorkbenchPage page)
Description copied from class: `Saveable`
Attempts to show this saveable in the given page and returns `true` on success. The default implementation does nothing and returns `false`.

Overrides:
  `show` in class `Saveable`
Parameters:
  `page` - the workbench page in which to show this saveable
Returns:
  `true` if this saveable is now visible to the user