001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.preferences;
003
004/**
005 * Visitor interface for {@link Setting} implementations.
006 * @since 9759
007 */
008public interface SettingVisitor {
009    /**
010     * Visitor call for {@link StringSetting}.
011     * @param value string setting
012     */
013    void visit(StringSetting value);
014
015    /**
016     * Visitor call for {@link ListSetting}.
017     * @param value list setting
018     */
019    void visit(ListSetting value);
020
021    /**
022     * Visitor call for {@link ListListSetting}.
023     * @param value list list setting
024     */
025    void visit(ListListSetting value);
026
027    /**
028     * Visitor call for {@link MapListSetting}.
029     * @param value map list setting
030     */
031    void visit(MapListSetting value);
032}