blob: 8532819e043b3e9df99f87dd557afb7a2fb82c9d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2005 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.wst.css.core.internal.util;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
/**
*
*/
public class CSSPathService {
// Constants
private static final String FILEURLSCHEME = "file";//$NON-NLS-1$
private static final String URLCOLON = ":"; //$NON-NLS-1$
private static final String FILEURLPREFIX = FILEURLSCHEME + URLCOLON + "//";//$NON-NLS-1$
private static final String URLSEPARATOR = "/"; //$NON-NLS-1$
/**
* @return java.lang.String
*/
public static String getAbsoluteURL(IStructuredModel baseModel, String ref) {
String absLink = URLModelProviderCSS.resolveURI(baseModel, ref, true);
String url = absLink;
if (absLink != null) { // if it has not scheme, we must add "file"
// scheme
try {
new java.net.URL(absLink);
}
catch (java.net.MalformedURLException e) {
IPath path = new Path(absLink);
if (path != null)
url = toURL(path);
}
}
return url;
}
/**
*
* @return org.eclipse.core.resources.IFile
* @param location
* java.lang.String
*/
public static IFile location2File(String location) {
Path path = new Path(location);
IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path);
if (file == null && path.segmentCount() > 1)
file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
return file;
}
/**
* Gets a file URL for the path.
*/
private static String toURL(IPath path) {
path = new Path(path.toFile().getAbsolutePath());
if (path.isUNC() == true) {
// it's UNC. return file://host/foo/bar/baz.html
return FILEURLSCHEME + URLCOLON + path.toString();
}
return FILEURLPREFIX + URLSEPARATOR + path.toString();
}
}