/******************************************************************************* * Copyright (c) 2007, 2008 compeople AG and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * compeople AG (Stefan Liebig) - initial API and implementation *******************************************************************************/ package de.compeople.commons.net.proxy.win32; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Strings.nullToEmpty; import java.net.Proxy; import java.net.URI; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import de.compeople.commons.net.proxy.ProxySelectorUtils; import de.compeople.commons.net.winhttp.WinHttpCurrentUserIEProxyConfig; /** * Helper */ class WinHttpConfig { private final List<Proxy> universalProxies = new ArrayList<Proxy>(); private final Map<String, List<Proxy>> protocolSpecificProxies = new HashMap<String, List<Proxy>>(); private final ProxyBypass proxyBypass; /** * @param proxyConfig */ public WinHttpConfig(WinHttpCurrentUserIEProxyConfig proxyConfig) { ProxySelectorUtils.fillProxyLists(proxyConfig.getProxy(), universalProxies, protocolSpecificProxies); proxyBypass = new ProxyBypass(nullToEmpty(proxyConfig.getProxyBypass())); } public boolean useProtocolSpecificProxies() { return !protocolSpecificProxies.isEmpty(); } public List<Proxy> getProtocolSpecificProxies(URI uri) { return protocolSpecificProxies.get(uri.getScheme()); } public List<Proxy> getUniversalProxies() { return universalProxies; } public boolean bypassProxyFor(URI uri) { return proxyBypass.bypassProxyFor(checkNotNull(uri)); } }