diff options
Diffstat (limited to 'bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ProjectResolver.java')
-rw-r--r-- | bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ProjectResolver.java | 259 |
1 files changed, 0 insertions, 259 deletions
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ProjectResolver.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ProjectResolver.java deleted file mode 100644 index 0a21f95409..0000000000 --- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ProjectResolver.java +++ /dev/null @@ -1,259 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2007 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 - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.sse.core.internal.util; - -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.wst.common.uriresolver.internal.util.URIHelper; - -import com.ibm.icu.util.StringTokenizer; - -/** - * @deprecated The URIResolver interface is deprecated. Use the resolver from - * org.eclipse.wst.common.uriresolver. - */ -public class ProjectResolver implements URIResolver { - private String fFileBaseLocation = null; - private IProject fProject = null; - - /** - * It is strongly recommended that clients use - * project.getAdapter(URIResolver.class) to obtain a URIResolver aware of - * the Project's special requirements. Note that a URIResolver may not be - * returned at all so manually creating this object may still be required. - */ - public ProjectResolver(IProject project) { - super(); - fProject = project; - } - - public String getFileBaseLocation() { - return fFileBaseLocation; - } - - public String getLocationByURI(String uri) { - return getLocationByURI(uri, getFileBaseLocation()); - } - - // defect 244817 end - /** - * Resolve the (possibly relative) URI acording to RFC1808 using the - * default file base location. Resolves resource references into absolute - * resource locations without ensuring that the resource actually exists. - * - * Note: currently resolveCrossProjectLinks is ignored in this - * implementation. - */ - public String getLocationByURI(String uri, boolean resolveCrossProjectLinks) { - return getLocationByURI(uri, getFileBaseLocation(), resolveCrossProjectLinks); - } - - public String getLocationByURI(String uri, String baseReference) { - if (uri == null) - return null; - /* - * defect 244817 try { URL aURL = new URL(uri); - */ - /** - * An actual URL was given, but only the "file:///" protocol is - * supported. Resolve the URI by finding the file to which it points. - */ - /* - * defect 244817 if (!aURL.getProtocol().equals("platform")) { - * //$NON-NLS-1$ if (aURL.getProtocol().equals("file") && - * (aURL.getHost().equals("localhost") || aURL.getHost().length() == - * 0)) { //$NON-NLS-2$//$NON-NLS-1$ return aURL.getFile(); } return - * uri; } } catch (MalformedURLException mfuExc) { } - */ - // defect 244817 start - if (isFileURL(uri)) { - try { - URL url = new URL(uri); - return getPath(url); - } - catch (MalformedURLException e) { - } - } - // defect 244817 end - - // which of the serveral are we suppose to use here? - // - - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=71223 - // Workaround for problem in URIHelper; uris starting with '/' are - // returned as-is. - String location = null; - if (uri.startsWith("/")) { //$NON-NLS-1$ - IProject p = getProject(); - if (p != null && p.isAccessible()) { - IFile file = p.getFile(uri); - - if (file.getLocation() != null) { - location = file.getLocation().toString(); - } - if (location == null && file.getLocationURI() != null) { - location = file.getLocationURI().toString(); - } - if (location == null) { - location = file.getFullPath().toString(); - } - } - } - if(location == null) { - location = URIHelper.normalize(uri, baseReference, getRootLocationString()); - } - return location; - } - - /** - * Perform the getLocationByURI action using the baseReference as the - * point of reference instead of the default for this resolver - * - * Note: currently resolveCrossProjectLinks is ignored in this - * implementation. - */ - public String getLocationByURI(String uri, String baseReference, boolean resolveCrossProjectLinks) { - return getLocationByURI(uri, baseReference); - } - - /** - * - * @param path - * @param host - * @return String - */ - private String getPath(IPath path, String host) { - IPath newPath = path; - // They are potentially for only Windows operating system. - // a.) if path has a device, and if it begins with IPath.SEPARATOR, - // remove it - final String device = path.getDevice(); - if ((device != null) && (device.length() > 0)) { - if (device.charAt(0) == IPath.SEPARATOR) { - final String newDevice = device.substring(1); - newPath = path.setDevice(newDevice); - } - } - // b.) if it has a hostname, it is UNC name... Any java or eclipse api - // helps it ?? - if (path != null && host != null && host.length() != 0) { - IPath uncPath = new Path(host); - uncPath = uncPath.append(path); - newPath = uncPath.makeUNC(true); - } - return newPath.toString(); - } - - /** - * - * @param url - * @return String - */ - private String getPath(URL url) { - String ref = url.getRef() == null ? "" : "#" + url.getRef(); //$NON-NLS-1$ //$NON-NLS-2$ - String strPath = url.getFile() + ref; - IPath path; - if (strPath.length() == 0) { - path = Path.ROOT; - } - else { - path = new Path(strPath); - String query = null; - StringTokenizer parser = new StringTokenizer(strPath, "?"); //$NON-NLS-1$ - int tokenCount = parser.countTokens(); - if (tokenCount == 2) { - path = new Path((String) parser.nextElement()); - query = (String) parser.nextElement(); - } - if (query == null) { - parser = new StringTokenizer(path.toString(), "#"); //$NON-NLS-1$ - tokenCount = parser.countTokens(); - if (tokenCount == 2) { - path = new Path((String) parser.nextElement()); - } - } - } - return getPath(path, url.getHost()); - } - - public org.eclipse.core.resources.IProject getProject() { - return fProject; - } - - public org.eclipse.core.resources.IContainer getRootLocation() { - return fProject; - } - - protected String getRootLocationString() { - String location = null; - if (fProject == null) - return null; - if (fProject.getLocation() != null) { - location = fProject.getLocation().toString(); - } - if (location == null && fProject.getLocationURI() != null) { - location = fProject.getLocationURI().toString(); - } - if (location == null) { - location = fProject.getFullPath().toString(); - } - return location; - } - - public InputStream getURIStream(String uri) { - return null; - } - - // defect 244817 start - /** - * - * @param passedSpec - * @return boolean - */ - private boolean isFileURL(String passedSpec) { - if (passedSpec == null) { - return false; - } - final String spec = passedSpec.trim(); - if (spec.length() == 0) { - return false; - } - final int limit = spec.length(); - String newProtocol = null; - for (int index = 0; index < limit; index++) { - final char p = spec.charAt(index); - if (p == '/') { //$NON-NLS-1$ - break; - } - if (p == ':') { //$NON-NLS-1$ - newProtocol = spec.substring(0, index); - break; - } - } - return (newProtocol != null && newProtocol.compareToIgnoreCase("file") == 0); //$NON-NLS-1$ - } - - public void setFileBaseLocation(String newFileBaseLocation) { - fFileBaseLocation = newFileBaseLocation; - } - - public void setProject(IProject newProject) { - fProject = newProject; - } -} |