package org.eclipse.jdt.launching.sourcelookup; | |
import java.io.File; | |
import java.io.FileInputStream; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import org.eclipse.core.resources.IStorage; | |
import org.eclipse.core.runtime.CoreException; | |
import org.eclipse.core.runtime.IPath; | |
import org.eclipse.core.runtime.Path; | |
import org.eclipse.core.runtime.PlatformObject; | |
import org.eclipse.jdt.core.IJavaModelStatusConstants; | |
import org.eclipse.jdt.core.JavaModelException; | |
import org.eclipse.jdt.internal.launching.LaunchingPlugin; | |
/* | |
* (c) Copyright IBM Corp. 2000, 2001. | |
* All Rights Reserved. | |
*/ | |
/** | |
* Implementation of storage for a local file | |
* (<code>java.io.File</code>). | |
* <p> | |
* This class may be instantiated; it is not intended to be subclassed. | |
* </p> | |
* @see DirectorySourceLocation | |
* @see IStorage | |
* @since 2.0 | |
*/ | |
public class LocalFileStorage extends PlatformObject implements IStorage { | |
/** | |
* The file this storage refers to. | |
*/ | |
private File fFile; | |
/** | |
* Constructs and returns storage for the given file. | |
* | |
* @param file a local file | |
*/ | |
public LocalFileStorage(File file){ | |
setFile(file); | |
} | |
/** | |
* @see IStorage#getContents() | |
*/ | |
public InputStream getContents() throws CoreException { | |
try { | |
return new FileInputStream(getFile()); | |
} catch (IOException e){ | |
throw new JavaModelException(e, IJavaModelStatusConstants.IO_EXCEPTION); | |
} | |
} | |
/** | |
* @see IStorage#getFullPath | |
*/ | |
public IPath getFullPath() { | |
try { | |
return new Path(getFile().getCanonicalPath()); | |
} catch (IOException e) { | |
LaunchingPlugin.log(e); | |
return null; | |
} | |
} | |
/** | |
* @see IStorage#getName | |
*/ | |
public String getName() { | |
return getFile().getName(); | |
} | |
/** | |
* @see IStorage#isReadOnly() | |
*/ | |
public boolean isReadOnly() { | |
return true; | |
} | |
/** | |
* Sets the file associated with this storage | |
* | |
* @param file a local file | |
*/ | |
private void setFile(File file) { | |
fFile = file; | |
} | |
/** | |
* Returns the file asscoiated with this storage | |
* | |
* @return file | |
*/ | |
public File getFile() { | |
return fFile; | |
} | |
/** | |
* @see java.lang.Object#equals(java.lang.Object) | |
*/ | |
public boolean equals(Object object) { | |
return object instanceof LocalFileStorage && | |
getFile().equals(((LocalFileStorage)object).getFile()); | |
} | |
/** | |
* @see java.lang.Object#hashCode() | |
*/ | |
public int hashCode() { | |
return getFile().hashCode(); | |
} | |
} | |