001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.tools;
003
004/**
005 * Visitor, to be used with {@link Platform}.
006 * @param <T> type that will be the result of the visiting operation
007 * @since 12776
008 */
009public interface PlatformVisitor<T> {
010    /**
011     * Visit {@link Platform#UNIXOID}
012     * @return result of the operation
013     */
014    T visitUnixoid();
015
016    /**
017     * Visit {@link Platform#WINDOWS}
018     * @return result of the operation
019     */
020    T visitWindows();
021
022    /**
023     * Visit {@link Platform#OSX}
024     * @return result of the operation
025     */
026    T visitOsx();
027}