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