// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.gui.layer;
/**
* Interface for layers that can save data to a file.
* @since 9751
*/
public interface SaveToFile {
/**
* Replies the savable state of the layer (i.e. if it can be saved through
* a "File->Save" dialog). A layer that implements the
* {@code SaveToFile} interface must return {@code true}.
*
* @return {@code true} if the layer can be saved to a file; {@code false}, otherwise
*/
boolean isSavable();
/**
* Determines if the data managed by this layer needs to be saved to
* a file. Only replies true if a file is assigned to this layer and
* if the data managed by this layer has been modified since the last
* save operation to the file.
*
* @return {@code true} if the data managed by this layer needs to be saved to a file; {@code false}, otherwise
*/
boolean requiresSaveToFile();
/**
* Initializes the layer after a successful save of data to a file.
*/
void onPostSaveToFile();
}