Package org.eclipse.core.resources

# Interface ISavedState

public interface ISavedState
A data structure returned by `IWorkspace.addSaveParticipant(org.eclipse.core.runtime.Plugin, ISaveParticipant)` containing a save number and an optional resource delta.

See Also:
  - `IWorkspace.addSaveParticipant(org.eclipse.core.runtime.Plugin, ISaveParticipant)`
Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

## Method Summary

Modifier and Type
Method
Description
`IPath[]`
`getFiles()`
Returns the files mapped with the `ISaveContext.map(IPath, IPath)` facility.
`int`
`getSaveNumber()`
Returns the save number for the save participant.
`IPath`
`lookup(IPath file)`
Returns the mapped location associated with the given path or `null` if none.
`void`
`processResourceChangeEvents(IResourceChangeListener listener)`
Used to receive notification of changes that might have happened while this plug-in was not active.

## Method Details

### getFiles

IPath[] getFiles()
Returns the files mapped with the `ISaveContext.map(IPath, IPath)` facility. Returns an empty array if there are no mapped files.

Returns:
  the files currently mapped by the participant
See Also:
  - `lookup(IPath)`
  - `ISaveContext.map(IPath, IPath)`

### getSaveNumber

int getSaveNumber()
Returns the save number for the save participant. This is the save number of the last successful save in which the plug-in actively participated, or `0` if the plug-in has never actively participated in a successful save.

Returns:
  the save number

### lookup

IPath lookup(IPath file)
Returns the mapped location associated with the given path or `null` if none.

Returns:
  the mapped location of a given path
See Also:
  - `getFiles()`
  - `ISaveContext.map(IPath, IPath)`

### processResourceChangeEvents

void processResourceChangeEvents(IResourceChangeListener listener)
Used to receive notification of changes that might have happened while this plug-in was not active. The listener receives notifications of changes to the workspace resource tree since the time this state was saved. After this method is run, the delta is forgotten. Subsequent calls to this method will have no effect.

No notification is received in the following cases:

- if a saved state was never recorded (`ISaveContext.needDelta()` was not called)
- a saved state has since been forgotten (using `IWorkspace.forgetSavedTree(String)`)
- a saved state has been deemed too old or has become invalid

All clients should have a contingency plan in place in case a changes are not available (the case should be very similar to the first time a plug-in is activated, and only has the current state of the workspace to work from).

The supplied event is of type `IResourceChangeEvent.POST_BUILD` and contains the delta detailing changes since this plug-in last participated in a save. This event object (and the resource delta within it) is valid only for the duration of the invocation of this method.

Parameters:
  `listener` - the listener
See Also:
  - `ISaveContext.needDelta()`
  - `IResourceChangeListener`