// Path: src/main/java/com/thoughtworks/go/strongauth/util/Constants.java
// public class Constants {
//     public static final String PLUGIN_ID = "strongauth";
// }
// 
// Path: src/main/java/com/thoughtworks/go/strongauth/util/Json.java
// public class Json {
//     private static Gson gson = new Gson();
// 
//     public static Map<String, String> toMapOfStrings(String jsonValue) {
//         Type mapOfStringToStringType = new TypeToken<LinkedTreeMap<String, String>>() {}.getType();
//         return gson.fromJson(jsonValue, mapOfStringToStringType);
//     }
// 
//     public static Map toMap(String jsonValue) {
//         return gson.fromJson(jsonValue, Map.class);
//     }
// 
//     public static String toJson(Object anything) {
//         return gson.toJson(anything);
//     }
// }
// 
// Path: src/main/java/com/thoughtworks/go/strongauth/wire/PluginConfigurationDecoder.java
// public class PluginConfigurationDecoder {
//     public PluginConfiguration decode(GoApiResponse response) {
//         if (response.responseCode() == 200) {
//             return parseConfiguration(response.responseBody());
//         } else {
//             return defaultConfiguration();
//         }
//     }
// 
//     private PluginConfiguration parseConfiguration(String body) {
//         if (body == null) {
//             return defaultConfiguration();
//         } else {
//             return fromMap(Json.toMapOfStrings(body));
//         }
//     }
// 
//     private PluginConfiguration fromMap(Map<String, String> configMap) {
//         return new PluginConfiguration(configMap.get("PASSWORD_FILE_PATH"));
//     }
// 
//     public PluginConfiguration defaultConfiguration() {
//         return new PluginConfiguration();
//     }
// }


import com.google.common.collect.ImmutableMap;
import com.thoughtworks.go.plugin.api.GoApplicationAccessor;
import com.thoughtworks.go.plugin.api.GoPluginIdentifier;
import com.thoughtworks.go.plugin.api.logging.Logger;
import com.thoughtworks.go.plugin.api.request.DefaultGoApiRequest;
import com.thoughtworks.go.plugin.api.response.GoApiResponse;
import com.thoughtworks.go.strongauth.util.Constants;
import com.thoughtworks.go.strongauth.util.Json;
import com.thoughtworks.go.strongauth.wire.PluginConfigurationDecoder;
package com.thoughtworks.go.strongauth.config;



public class GoAPI {
    public final String pluginId = Constants.PLUGIN_ID;
    private static final Logger LOGGER = Logger.getLoggerFor(GoAPI.class);
    private final GoPluginIdentifier goPluginIdentifier;
    private final GoApplicationAccessor goApplicationAccessor;
// Path: src/main/java/com/thoughtworks/go/strongauth/util/Constants.java
// public class Constants {
//     public static final String PLUGIN_ID = "strongauth";
// }
// 
// Path: src/main/java/com/thoughtworks/go/strongauth/util/Json.java
// public class Json {
//     private static Gson gson = new Gson();
// 
//     public static Map<String, String> toMapOfStrings(String jsonValue) {
//         Type mapOfStringToStringType = new TypeToken<LinkedTreeMap<String, String>>() {}.getType();
//         return gson.fromJson(jsonValue, mapOfStringToStringType);
//     }
// 
//     public static Map toMap(String jsonValue) {
//         return gson.fromJson(jsonValue, Map.class);
//     }
// 
//     public static String toJson(Object anything) {
//         return gson.toJson(anything);
//     }
// }
// 
// Path: src/main/java/com/thoughtworks/go/strongauth/wire/PluginConfigurationDecoder.java
// public class PluginConfigurationDecoder {
//     public PluginConfiguration decode(GoApiResponse response) {
//         if (response.responseCode() == 200) {
//             return parseConfiguration(response.responseBody());
//         } else {
//             return defaultConfiguration();
//         }
//     }
// 
//     private PluginConfiguration parseConfiguration(String body) {
//         if (body == null) {
//             return defaultConfiguration();
//         } else {
//             return fromMap(Json.toMapOfStrings(body));
//         }
//     }
// 
//     private PluginConfiguration fromMap(Map<String, String> configMap) {
//         return new PluginConfiguration(configMap.get("PASSWORD_FILE_PATH"));
//     }
// 
//     public PluginConfiguration defaultConfiguration() {
//         return new PluginConfiguration();
//     }
// }


// Path: src/main/java/com/thoughtworks/go/strongauth/config/GoAPI.java
import com.google.common.collect.ImmutableMap;
import com.thoughtworks.go.plugin.api.GoApplicationAccessor;
import com.thoughtworks.go.plugin.api.GoPluginIdentifier;
import com.thoughtworks.go.plugin.api.logging.Logger;
import com.thoughtworks.go.plugin.api.request.DefaultGoApiRequest;
import com.thoughtworks.go.plugin.api.response.GoApiResponse;
import com.thoughtworks.go.strongauth.util.Constants;
import com.thoughtworks.go.strongauth.util.Json;
import com.thoughtworks.go.strongauth.wire.PluginConfigurationDecoder;

package com.thoughtworks.go.strongauth.config;



public class GoAPI {
    public final String pluginId = Constants.PLUGIN_ID;
    private static final Logger LOGGER = Logger.getLoggerFor(GoAPI.class);
    private final GoPluginIdentifier goPluginIdentifier;
    private final GoApplicationAccessor goApplicationAccessor;
    private final PluginConfigurationDecoder pluginConfigurationDecoder;