public interface IFeatureSaveSupport
FeatureModelPersistenceManager
to enable support for saving in-memory changes.
See this article for more information.
Modifier and Type | Method and Description |
---|---|
void |
discardChanges()
Resets the unsaved (in-memory) changes of the
IFeatureModel , returning the IFeatureModel's state back to that of its backend. |
List<FeatureChange> |
getChanges()
Retrieves a list of all unsaved (in-memory) changes to the
IFeatureModel . |
FeatureSaveErrorInfo |
saveChanges()
Saves the in-memory changes of the
IFeatureModel in the IFeatureModel 's backend (for example a file or database). |
@Nullable FeatureSaveErrorInfo saveChanges()
IFeatureModel
in the IFeatureModel
's backend (for example a file or database).
Typically, this method shouldn't modify the in-memory state of the model. So the feature model does not have to send out events through its observers
. In some cases however (depending on the model/save implementation), feature changes can occur while changes are saved. In that case, the model's observers need to be notified of those changes.
null
on success, or error information on failure.void discardChanges()
IFeatureModel
, returning the IFeatureModel's
state back to that of its backend.
Since this changes the in-memory state of the IFeatureModel
, the model's observers
should be notified with a FeatureModelEvent
containing feature changes
that go from the current state to the backend's state.
@NotNull List<FeatureChange> getChanges()
IFeatureModel
.
That is, the changes that need to be saved to the IFeatureModel's
backend to persist all in-memory changes.
There should only be one FeatureChange
per FeatureId. If a feature has been updated multiple times, it should be condensed into a single FeatureChange
. Note: If a feature has been deleted, and another feature with the same FeatureId was added, this condenses to a single update
FeatureChange
.
IFeatureModel