/******************************************************************************* * Copyright (c) 2005, 2016 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 * David Black - bug 198091 * Mickael Istria (Red Hat Inc.) - Bug 486901 * Red Hat Inc. - copied over to use with Docker Tooling *******************************************************************************/ package org.eclipse.linuxtools.internal.docker.ui; import java.net.URI; import org.eclipse.core.filesystem.EFS; import org.eclipse.core.filesystem.IFileInfo; import org.eclipse.core.filesystem.IFileStore; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Path; import org.eclipse.linuxtools.docker.ui.Activator; public class ResourceInfoUtils { /** * Return whether or not the file called pathName exists. * * @param pathName * @return boolean <code>true</code> if the file exists. * @see IFileInfo#exists() */ public static boolean exists(String pathName) { IFileInfo info = getFileInfo(pathName); if (info == null) { return false; } return info.exists(); } /** * Return the fileInfo at pathName or <code>null</code> if the format is * invalid or if the file info cannot be determined. * * @param pathName * @return IFileInfo or <code>null</code> */ public static IFileInfo getFileInfo(String pathName) { IFileStore store = getFileStore(pathName); if (store == null) { return null; } return store.fetchInfo(); } /** * Return the fileInfo for location. Return <code>null</code> if there is a * CoreException looking it up * * @param location * @return String or <code>null</code> */ public static IFileInfo getFileInfo(URI location) { if (location.getScheme() == null) return null; IFileStore store = getFileStore(location); if (store == null) { return null; } return store.fetchInfo(); } /** * Get the file store for the local file system path. * * @param string * @return IFileStore or <code>null</code> if there is a * {@link CoreException}. */ public static IFileStore getFileStore(String string) { Path location = new Path(string); // see if there is an existing resource at that location that might have // a different file store IFile file = ResourcesPlugin.getWorkspace().getRoot() .getFileForLocation(location); if (file != null) { return getFileStore(file.getLocationURI()); } return getFileStore(location.toFile().toURI()); } /** * Get the file store for the URI. * * @param uri * @return IFileStore or <code>null</code> if there is a * {@link CoreException}. */ public static IFileStore getFileStore(URI uri) { try { return EFS.getStore(uri); } catch (CoreException e) { Activator.log(e); return null; } } }