001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.io;
003
004import java.util.Map;
005
006import org.openstreetmap.josm.io.UploadStrategySpecification;
007
008/**
009 * Upload dialog super interface.
010 * @since 9685
011 */
012public interface IUploadDialog {
013
014    /**
015     * Returns true if the dialog was canceled
016     *
017     * @return true if the dialog was canceled
018     */
019    boolean isCanceled();
020
021    /**
022     * Remembers the user input in the preference settings
023     */
024    void rememberUserInput();
025
026    /**
027     * Returns the current value for the upload comment
028     *
029     * @return the current value for the upload comment
030     */
031    String getUploadComment();
032
033    /**
034     * Returns the current value for the changeset source
035     *
036     * @return the current value for the changeset source
037     */
038    String getUploadSource();
039
040    /**
041     * Replies the {@link UploadStrategySpecification} the user entered in the dialog.
042     *
043     * @return the {@link UploadStrategySpecification} the user entered in the dialog.
044     */
045    UploadStrategySpecification getUploadStrategySpecification();
046
047    /**
048     * Replies the map with the current tags in the tag editor model.
049     * @param keepEmpty {@code true} to keep empty tags
050     * @return the map with the current tags in the tag editor model.
051     */
052    Map<String, String> getTags(boolean keepEmpty);
053
054    /**
055     * Handles missing comment.
056     */
057    void handleMissingComment();
058
059    /**
060     * Handles missing source.
061     */
062    void handleMissingSource();
063
064    /**
065     * Handles illegal chunk size.
066     */
067    void handleIllegalChunkSize();
068}