// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.io.remotecontrol.handler; import static org.openstreetmap.josm.tools.I18n.tr; import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault; import org.openstreetmap.josm.io.remotecontrol.RequestProcessor; /** * Handler for version request. */ public class VersionHandler extends RequestHandler { /** * The remote control command name used to reply version. */ public static final String command = "version"; @Override protected void handleRequest() throws RequestHandlerErrorException, RequestHandlerBadRequestException { content = RequestProcessor.PROTOCOLVERSION; contentType = "application/json"; if (args.containsKey("jsonp")) { content = args.get("jsonp") + " && " + args.get("jsonp") + '(' + content + ')'; } } @Override public String getPermissionMessage() { return tr("Remote Control has been asked to report its protocol version. This enables web sites to detect a running JOSM."); } @Override public PermissionPrefWithDefault getPermissionPref() { return PermissionPrefWithDefault.READ_PROTOCOL_VERSION; } @Override public String[] getMandatoryParams() { return new String[0]; } @Override public String[] getOptionalParams() { return new String[]{"jsonp"}; } @Override protected void validateRequest() throws RequestHandlerBadRequestException { // Nothing to do } @Override public String getUsage() { return "returns the current protocol version of the installed JOSM RemoteControl"; } @Override public String[] getUsageExamples() { return new String[] {"/version", "/version?jsonp=test"}; } }