package be.msyben.vinylManager.tools;

import be.msyben.vinylManager.properties.Preferences;
import be.msyben.vinylManager.tools.log.VinylManagerLogger;

/**
 * Définition des informations de connexion à travers un proxy.
 * @author Mathieu Syben
 */
public final class ProxySettings {

    private ProxySettings() {
        
    }
    
    /**
     * Récupère les informations du proxy dans les préférences et met à jour les informations système.
     */
    public static final void setProxy() {
        String httpProxy = Preferences.getInstance().get(Preferences.HTTP_PROXY_URL);
        if (httpProxy != null && !httpProxy.isEmpty()) {
            int port = 80;
            try {
                port = Integer.parseInt(Preferences.getInstance().get(Preferences.HTTP_PROXY_PORT, "80"));
            } catch (NumberFormatException ex) {
                VinylManagerLogger.log("Erreur de récupération du port du proxy HTTP");
            }
            System.setProperty("http.proxyHost", httpProxy);
            System.setProperty("http.proxyPort", port+"");
            VinylManagerLogger.log("HTTP proxy : " + httpProxy+":"+port);
        } else {
            System.clearProperty("http.proxyHost");
            System.clearProperty("http.proxyPort");
            VinylManagerLogger.log("No HTTP proxy");
        }
        String httpsProxy = Preferences.getInstance().get(Preferences.HTTPS_PROXY_URL);
        if (httpsProxy != null && !httpsProxy.isEmpty()) {
            int port = 443;
            try {
                port = Integer.parseInt(Preferences.getInstance().get(Preferences.HTTPS_PROXY_PORT, "443"));
            } catch (NumberFormatException ex) {
                VinylManagerLogger.log("Erreur de récupération du port du proxy HTTPS");
            }
            System.setProperty("https.proxyHost", httpsProxy);
            System.setProperty("https.proxyPort", port+"");
            VinylManagerLogger.log("HTTPS proxy : " + httpsProxy+":"+port);
        } else {
            System.clearProperty("https.proxyHost");
            System.clearProperty("https.proxyPort");
            VinylManagerLogger.log("No HTTPS proxy");
        }
    }
    
}
