| /******************************************************************************* |
| * Copyright (c) 2004, 2009 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.osgi.service.urlconversion; |
| |
| import java.io.IOException; |
| import java.net.URL; |
| |
| /** |
| * The interface of the service that allows client-defined protocol |
| * URLs to be converted to native file URLs on the local file system. |
| * <p> |
| * Clients may implement this interface. |
| * </p> |
| * |
| * @since 3.1 |
| */ |
| public interface URLConverter { |
| |
| /** |
| * Converts a URL that uses a user-defined protocol into a URL that uses the file |
| * protocol. The contents of the URL may be extracted into a cache on the file-system |
| * in order to get a file URL. |
| * <p> |
| * If the protocol for the given URL is not recognized by this converter, the original |
| * URL is returned as-is. |
| * </p> |
| * @param url the original URL |
| * @return the converted file URL or the original URL passed in if it is |
| * not recognized by this converter |
| * @throws IOException if an error occurs during the conversion |
| * @since 3.2 |
| */ |
| public URL toFileURL(URL url) throws IOException; |
| |
| /** |
| * Converts a URL that uses a client-defined protocol into a URL that uses a |
| * protocol which is native to the Java class library (file, jar, http, etc). |
| * <p> |
| * Note however that users of this API should not assume too much about the |
| * results of this method. While it may consistently return a file: URL in certain |
| * installation configurations, others may result in jar: or http: URLs. |
| * </p> |
| * <p> |
| * If the protocol is not recognized by this converter, then the original URL is |
| * returned as-is. |
| * </p> |
| * @param url the original URL |
| * @return the resolved URL or the original if the protocol is unknown to this converter |
| * @exception IOException if unable to resolve URL |
| * @throws IOException if an error occurs during the resolution |
| * @since 3.2 |
| */ |
| public URL resolve(URL url) throws IOException; |
| } |