diff options
Diffstat (limited to 'core/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/util/PlatformUtils.java')
-rw-r--r-- | core/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/util/PlatformUtils.java | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/core/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/util/PlatformUtils.java b/core/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/util/PlatformUtils.java new file mode 100644 index 000000000..2af0e3b16 --- /dev/null +++ b/core/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/util/PlatformUtils.java @@ -0,0 +1,176 @@ +/******************************************************************************* + * Copyright (c) 2003, 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.jst.ws.internal.axis.consumption.ui.util; + + +import java.net.MalformedURLException; +import java.net.URL; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; +import org.eclipse.emf.common.util.URI; + +public class PlatformUtils { + + public static final String PLATFORM_ROOT = "platform:/resource"; + public static final String WIN_FILE_PROTOCOL = "file:/"; + public static final String LNX_FILE_PROTOCOL = "file://"; + public static final String PLATFORM = "platform"; + public static final String RESOURCE = "/resource"; + + private PlatformUtils() { + } + + /** + * Returns the string representation of platform URL given an IPath + * @param IPath path + * @return String platformURL + */ + public static String getPlatformURL(IPath path) { + String platformURL; + platformURL = URI.createPlatformResourceURI(path.toString()).toString(); + // old method: file system representation + // platformURL = ResourcesPlugin.getWorkspace().getRoot().getFile(path).getLocation().toString(); + return platformURL; + } + + /** + * Returns the URL representation of the Platform URL given an IPath + * The PlatformResourceManager underdstands this format and therefore + * this is suited for command URL's + * @param IPath path + * @return URL Platform URL + */ + public static URL getCommandPlatformURL(IPath path) { + URL url = null; + try { + url = new URL(PLATFORM, null, RESOURCE + path.toString()); + } catch (MalformedURLException e) { + return url; + } + return url; + } + + /** + * Returns the string representation of path given platform URL string + * @param String platform URL string + * @return String path string + */ + public static String getPathFromPlatform(String platformStr) { + String pathStr = platformStr; + + String rootLocation; + rootLocation = PLATFORM_ROOT; + // old method: file system representation + // rootLocation = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString(); + if (platformStr.startsWith(rootLocation)) + pathStr = platformStr.substring(rootLocation.length()); + return pathStr; + } + + /** + * Returns the string representation of platform URL given the path string + * @param String path string + * @return String platform URL string + */ + public static String getPlatformFromPath(String pathStr) { + String platformStr = pathStr; + + String rootLocation; + rootLocation = PLATFORM_ROOT; + // old method: file system representation + // rootLocation = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString(); + platformStr = rootLocation + pathStr; + return platformStr; + } + + /** + * Returns the string representation of the local file system file given platform URL string + * @param String platform URL string + * @return String file string + */ + public static String getFileFromPlatform(String platformStr) { + String fileStr = platformStr; + String pathStr = getPathFromPlatform(platformStr); + + fileStr = + ResourcesPlugin + .getWorkspace() + .getRoot() + .getFile(new Path(pathStr)) + .getLocation() + .toString(); + + // old method: file system representation + // Do nothing + + return fileStr; + } + + /** + * Returns the file protocol representation of the local file system file given platform URL string + * @param String platform URL string + * @return String the file protocol uri + */ + public static String getFileURLFromPlatform(String platformStr) { + String fileStr = platformStr; + String pathStr = getPathFromPlatform(platformStr); + try { + fileStr = + ResourcesPlugin + .getWorkspace() + .getRoot() + .getFile(new Path(pathStr)) + .getLocation() + .toFile() + .toURL() + .toString(); + } catch (MalformedURLException murle) { + fileStr = getFileURLFromPath(new Path(pathStr)); + } + return fileStr; + } + + /** + * Returns the file protocol representation of a local file + * @param IPath the Path object representing the file + * @return String the file protocol uri + */ + public static String getFileURLFromPath(IPath path) { + + String file = null; + if (path != null) { + if (!path.isAbsolute()) { + file = + ResourcesPlugin + .getWorkspace() + .getRoot() + .getFile(path) + .getLocation() + .toString(); + if (file.charAt(0) == IPath.SEPARATOR) { + file = LNX_FILE_PROTOCOL + file; + } else { + file = WIN_FILE_PROTOCOL + file; + } + } else { + file = path.toString(); + } + if (file != null && file.charAt(0) == IPath.SEPARATOR) { + file = LNX_FILE_PROTOCOL + file; + } else { + file = WIN_FILE_PROTOCOL + file; + } + } + return file == null ? null : file; + + } +} |