org.fife.ui.rsyntaxtextarea.FileFileLocation Maven / Gradle / Ivy
The newest version!
/*
* 11/13/2008
*
* FileFileLocation.java - The location of a local file.
*
* This library is distributed under a modified BSD license. See the included
* RSyntaxTextArea.License.txt file for details.
*/
package org.fife.ui.rsyntaxtextarea;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.IOException;
import java.io.OutputStream;
/**
* The location of a local file.
*
* @author Robert Futrell
* @version 1.0
*/
class FileFileLocation extends FileLocation {
/**
* The file. This may or may not actually exist.
*/
private File file;
/**
* Constructor.
*
* @param file The local file.
*/
public FileFileLocation(File file) {
try {
// Useful on Windows and OS X.
this.file = file.getCanonicalFile();
} catch (IOException ioe) {
this.file = file;
}
}
/**
* {@inheritDoc}
*/
@Override
protected long getActualLastModified() {
return file.lastModified();
}
/**
* Returns the full path to the file.
*
* @return The full path to the file.
* @see #getFileName()
*/
@Override
public String getFileFullPath() {
return file.getAbsolutePath();
}
/**
* {@inheritDoc}
*/
@Override
public String getFileName() {
return file.getName();
}
/**
* {@inheritDoc}
*/
@Override
protected InputStream getInputStream() throws IOException {
return new FileInputStream(file);
}
/**
* {@inheritDoc}
*/
@Override
protected OutputStream getOutputStream() throws IOException {
return new FileOutputStream(file);
}
/**
* Always returns true
.
*
* @return true
always.
* @see #isLocalAndExists()
*/
@Override
public boolean isLocal() {
return true;
}
/**
* Since file locations of this type are guaranteed to be local, this
* method returns whether the file exists.
*
* @return Whether this local file actually exists.
* @see #isLocal()
*/
@Override
public boolean isLocalAndExists() {
return file.exists();
}
}