/******************************************************************************* * Copyright (c) 2009, 2014 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 * Lars Vogel <Lars.Vogel@gmail.com> - Bug 423744 *******************************************************************************/ package org.eclipse.e4.ui.css.core.util.impl.resources; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.net.MalformedURLException; import java.net.URL; import org.eclipse.core.runtime.FileLocator; import org.eclipse.e4.ui.css.core.util.resources.IResourceLocator; public class OSGiResourceLocator implements IResourceLocator { private String startLocation; public OSGiResourceLocator(String start) { startLocation = start; } @Override public String resolve(String uri) { if (!uri.startsWith("platform:/plugin/")) { uri = startLocation + uri; } try { URL resolvedURL = FileLocator.resolve(new URL(uri)); return resolvedURL.toString(); } catch (MalformedURLException e) { } catch (IOException e) { } return null; } @Override public InputStream getInputStream(String uri) throws Exception { return FileLocator.resolve(new URL(startLocation + uri)).openStream(); } @Override public Reader getReader(String uri) throws Exception { return new InputStreamReader(getInputStream(uri)); } }