Interface IFeatureSaveSupport


public interface IFeatureSaveSupport
An implementation of this interface can be supplied to the FeatureModelPersistenceManager to enable support for saving in-memory changes.

See this article for more information.

Since:
2023.1
  • Method Details

    • saveChanges

      @Nullable FeatureSaveErrorInfo saveChanges()
      Saves the in-memory changes of the 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.

      Returns:
      null on success, or error information on failure.
    • discardChanges

      void discardChanges()
      Resets the unsaved (in-memory) changes of the 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.

    • getChanges

      @NotNull List<@NotNull FeatureChange> getChanges()
      Returns the list of all unsaved (in-memory) changes of the 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 feature id. 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 feature id was added, this condenses to a single update FeatureChange.

      Returns:
      the list of all unsaved (in-memory) changes of the IFeatureModel.