|
Eclipse Platform 2.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
A context for workspace save
operations.
Note that IWorkspace.save
uses a
different save context for each registered participant,
allowing each to declare whether they have actively
participated and decide whether to receive a resource
delta on reactivation.
This interface is not intended to be implemented by clients.
IWorkspace.save(boolean, org.eclipse.core.runtime.IProgressMonitor)
Field Summary | |
static int |
FULL_SAVE
Type constant which identifies a full save. |
static int |
PROJECT_SAVE
Type constant which identifies a project save. |
static int |
SNAPSHOT
Type constant which identifies a snapshot. |
Method Summary | |
IPath[] |
getFiles()
Returns current files mapped with the ISaveContext.map
facility or an empty array if there are no mapped files. |
int |
getKind()
Returns the type of this save. |
int |
getPreviousSaveNumber()
Returns the number for the previous save in which the plug-in actively participated, or 0
if the plug-in has never actively participated in a save before. |
IProject |
getProject()
If the current save is a project save, this method returns the project being saved. |
int |
getSaveNumber()
Returns the number for this save. |
IPath |
lookup(IPath file)
Returns the current location for the given file or null if none. |
void |
map(IPath file,
IPath location)
Maps the given plug-in file to its real location. |
void |
needDelta()
Indicates that the saved workspace tree should be remembered so that a delta will be available in a subsequent session when the plug-in re-registers to participate in saves. |
void |
needSaveNumber()
Indicates that this participant has actively participated in this save. |
Field Detail |
public static final int FULL_SAVE
getKind()
,
Constant Field Valuespublic static final int SNAPSHOT
getKind()
,
Constant Field Valuespublic static final int PROJECT_SAVE
getKind()
,
Constant Field ValuesMethod Detail |
public IPath[] getFiles()
ISaveContext.map
facility or an empty array if there are no mapped files.
map(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath)
public int getKind()
ISaveContext.FULL_SAVE
ISaveContext.SNAPSHOT
ISaveContext.PROJECT_SAVE
public int getPreviousSaveNumber()
0
if the plug-in has never actively participated in a save before.
In the event of an unsuccessful save, this is the value to
rollback
to.
0
if never saved beforeISaveParticipant.rollback(org.eclipse.core.resources.ISaveContext)
public IProject getProject()
null
if this is not
project savegetKind()
public int getSaveNumber()
1
more than the
previous save number.
This is the value to use when, for example, creating files in which a participant will save its data.
ISaveParticipant.saving(org.eclipse.core.resources.ISaveContext)
public IPath lookup(IPath file)
null
if none.
null
map(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath)
,
ISavedState.lookup(org.eclipse.core.runtime.IPath)
public void map(IPath file, IPath location)
ISaveContext.getSaveNumber()
to map plug-in configuration
file names to real locations.
For example, assume a plug-in has a configuration file named "config.properties". The map facility can be used to map that logical name onto a real name which is specific to a particular save (e.g., 10.config.properties, where 10 is the current save number). The paths specified here should always be relative to the plug-in state location for the plug-in saving the state.
Each save participant must manage the deletion of its old state files. Old state files
can be discovered using getPreviousSaveNumber
or by using
getFiles
to discover the current files and comparing that to the
list of files on disk.
file
- the logical name of the participant's data filelocation
- the real (i.e., filesystem) name by which the file should be known
for this save, or null
to remove the entrylookup(org.eclipse.core.runtime.IPath)
,
getSaveNumber()
,
needSaveNumber()
,
ISavedState.lookup(org.eclipse.core.runtime.IPath)
public void needDelta()
Note that this is orthogonal the needSaveNumber
. That is,
one can ask for a delta regardless of whether or not one is an active participant.
Note that deltas are not guaranteed to be saved even if saving is requested. Deltas cannot be supplied where the previous state is too old or has become invalid.
This method is only valid for full saves. It is ignored during snapshots or project saves.
IWorkspace.addSaveParticipant(org.eclipse.core.runtime.Plugin, org.eclipse.core.resources.ISaveParticipant)
,
ISavedState.processResourceChangeEvents(org.eclipse.core.resources.IResourceChangeListener)
public void needSaveNumber()
If this method is not called, the plug-in is not deemed to be an active participant in this save.
Note that this is orthogonal the needDelta
. That is,
one can be an active participant whether or not one asks for a delta.
IWorkspace.addSaveParticipant(org.eclipse.core.runtime.Plugin, org.eclipse.core.resources.ISaveParticipant)
,
ISavedState.getSaveNumber()
|
Eclipse Platform 2.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |