/******************************************************************************* * Copyright (c) 2004, 2009 Tasktop Technologies 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: * Tasktop Technologies - initial API and implementation *******************************************************************************/ package org.eclipse.mylyn.commons.net; import java.net.Proxy; import java.util.HashMap; import java.util.Map; /** * @since 2.2 * @author Steffen Pingel */ public class WebLocation extends AbstractWebLocation { private static class PlatformProxyProvider implements IProxyProvider { public Proxy getProxyForHost(String host, String proxyType) { return WebUtil.getProxy(host, proxyType); } } private final Map<AuthenticationType, AuthenticationCredentials> credentialsByType; private final IProxyProvider proxyProvider; public WebLocation(String url, String username, String password, IProxyProvider proxyProvider) { super(url); this.credentialsByType = new HashMap<AuthenticationType, AuthenticationCredentials>(); this.proxyProvider = proxyProvider; if (username != null && password != null) { setCredentials(AuthenticationType.REPOSITORY, username, password); } } public WebLocation(String url, String username, String password) { this(url, username, password, new PlatformProxyProvider()); } public WebLocation(String url) { this(url, null, null, new PlatformProxyProvider()); } @Override public AuthenticationCredentials getCredentials(AuthenticationType authType) { return credentialsByType.get(authType); } @Override public Proxy getProxyForHost(String host, String proxyType) { if (proxyProvider != null) { return proxyProvider.getProxyForHost(host, proxyType); } return null; } public void setCredentials(AuthenticationType authType, String username, String password) { credentialsByType.put(authType, new AuthenticationCredentials(username, password)); } }