| /******************************************************************************* |
| * Copyright (c) 2007, 2018 Borland Software Corporation and others. |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v2.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v20.html |
| * |
| * Contributors: |
| * Borland Software Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.m2m.internal.qvt.oml.emf.util; |
| |
| import java.net.URISyntaxException; |
| |
| import org.eclipse.core.resources.IFile; |
| import org.eclipse.core.resources.IResource; |
| import org.eclipse.core.resources.IWorkspaceRoot; |
| import org.eclipse.core.resources.ResourcesPlugin; |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.core.runtime.Path; |
| import org.eclipse.emf.common.util.URI; |
| |
| public class URIUtils { |
| private URIUtils() { |
| } |
| |
| public static URI getResourceURI(IResource resource) { |
| return URI.createPlatformResourceURI(resource.getFullPath().toString(), true); |
| } |
| |
| public static IResource getResource(URI resourceURI) { |
| IWorkspaceRoot wsRoot; |
| try { |
| wsRoot = ResourcesPlugin.getWorkspace().getRoot(); |
| } |
| catch (RuntimeException e) { |
| return null; |
| } |
| |
| if(resourceURI.isPlatformResource()) { |
| String wsRelativePath = resourceURI.toPlatformString(true); |
| return wsRoot.findMember(new Path(wsRelativePath)); |
| } else if(resourceURI.isFile() && !resourceURI.isRelative()) { |
| IFile[] files; |
| try { |
| files = wsRoot.findFilesForLocationURI(new java.net.URI(resourceURI.toString())); |
| if (files.length > 0) { |
| return files[0]; |
| } |
| |
| } catch (URISyntaxException e) { |
| // do nothing just indicate we could not resolve to a resource |
| return null; |
| } |
| } |
| |
| return null; |
| } |
| |
| public static IFile getFile(URI uri) { |
| IResource resource = getResource(uri); |
| return resource instanceof IFile ? (IFile) resource : null; |
| } |
| |
| public static void refresh(URI uri) { |
| IFile file = URIUtils.getFile(uri); |
| if(file != null) { |
| try { |
| file.getParent().refreshLocal(IResource.DEPTH_ONE, null); |
| } |
| catch (CoreException e) { |
| } |
| } |
| } |
| |
| |
| } |