diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.common/src/org/eclipse/core/internal/boot/PlatformURLHandler.java')
-rw-r--r-- | bundles/org.eclipse.equinox.common/src/org/eclipse/core/internal/boot/PlatformURLHandler.java | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/bundles/org.eclipse.equinox.common/src/org/eclipse/core/internal/boot/PlatformURLHandler.java b/bundles/org.eclipse.equinox.common/src/org/eclipse/core/internal/boot/PlatformURLHandler.java deleted file mode 100644 index 2bfa34b21..000000000 --- a/bundles/org.eclipse.equinox.common/src/org/eclipse/core/internal/boot/PlatformURLHandler.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation 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: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.internal.boot; - -import java.io.IOException; -import java.lang.reflect.Constructor; -import java.net.*; -import java.util.Hashtable; -import org.eclipse.core.internal.runtime.CommonMessages; -import org.eclipse.osgi.util.NLS; -import org.osgi.service.url.AbstractURLStreamHandlerService; - -/** - * URL handler for the "platform" protocol - */ -public class PlatformURLHandler extends AbstractURLStreamHandlerService { - - private static Hashtable connectionType = new Hashtable(); - - // URL protocol designations - public static final String PROTOCOL = "platform"; //$NON-NLS-1$ - public static final String FILE = "file"; //$NON-NLS-1$ - public static final String JAR = "jar"; //$NON-NLS-1$ - public static final String BUNDLE = "bundle"; //$NON-NLS-1$ - public static final String JAR_SEPARATOR = "!/"; //$NON-NLS-1$ - public static final String PROTOCOL_SEPARATOR = ":"; //$NON-NLS-1$ - - /* - * Constructor for the class. - */ - public PlatformURLHandler() { - super(); - } - - /* (non-Javadoc) - * @see org.osgi.service.url.AbstractURLStreamHandlerService#openConnection(java.net.URL) - */ - public URLConnection openConnection(URL url) throws IOException { - // Note: openConnection() method is made public (rather than protected) - // to enable request delegation from proxy handlers - String spec = url.getFile().trim(); - if (spec.startsWith("/")) //$NON-NLS-1$ - spec = spec.substring(1); - int ix = spec.indexOf("/"); //$NON-NLS-1$ - if (ix == -1) - throw new MalformedURLException(NLS.bind(CommonMessages.url_invalidURL, url.toExternalForm())); - - String type = spec.substring(0, ix); - Constructor construct = (Constructor) connectionType.get(type); - if (construct == null) - throw new MalformedURLException(NLS.bind(CommonMessages.url_badVariant, type)); - - PlatformURLConnection connection = null; - try { - connection = (PlatformURLConnection) construct.newInstance(new Object[] {url}); - } catch (Exception e) { - throw new IOException(NLS.bind(CommonMessages.url_createConnection, e.getMessage())); - } - connection.setResolvedURL(connection.resolve()); - return connection; - } - - public static void register(String type, Class connectionClass) { - try { - Constructor c = connectionClass.getConstructor(new Class[] {URL.class}); - connectionType.put(type, c); - } catch (NoSuchMethodException e) { - //don't register connection classes that don't conform to the spec - } - } - - public static void unregister(String type) { - connectionType.remove(type); - } -} |