Class LocalDataFile
- java.lang.Object
-
- lumis.portal.filesystem.IFile
-
- lumis.portal.filesystem.impl.LocalDataFile
-
- All Implemented Interfaces:
Serializable
,IInputStreamProvider
public class LocalDataFile extends IFile
Local data file. This is anIFile
that is inlocal data
folder. This file's changes are not replicated through the cluster.- Since:
- 8.0.0
- Version:
- $Revision: 22716 $ $Date: 2019-05-06 17:16:41 -0300 (Mon, 06 May 2019) $
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description LocalDataFile(String relativePath)
Creates a new instance with the given relative path.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
calculateBasePath()
Returns the base file system path for this file.protected void
copyRegularFileTo(IFile dest)
Copies this file, assuming it is a regular file, to the specified destination.void
delete()
Deletes the file or directory.void
deleteRecursively()
Tries to delete the file or directory recursively.boolean
exists()
Tests whether the file or directory exists.static LocalDataFile
fromAbsolutePath(String absolutePath)
Returns aLocalDataFile
resolved from an absolute file path.File
getFile()
InputStream
getInputStream()
Returns anInputStream
to be used to read this file.long
getLastModified()
Returns the time that the file or directory was last modified.long
getLength()
Returns the length of the file.OutputStream
getOutputStream()
Returns anOutputStream
that writes to this file.LocalDataFile
getParent()
Returns the parentdirectory
.LocalDataFile
getRoot()
Returns the root folder of this file.boolean
isDirectory()
Tests whether the file is a directory.boolean
isFile()
Tests whether the file denoted by thisIFile
is an actual file.IFile[]
listFiles()
Lists all immediate sub files and directories of this directory (the files and directories whoseIFile.getParent()
is equal to this).void
mkdirs()
Creates the directory named by this logical filesystem object, including any necessary but nonexistent parent directories.byte[]
readBytes()
Reads this file content in bytes.void
renameTo(IFile dest2)
Renames the file denoted by this logical filesystem object.LocalDataFile
resolve(String relativePath)
Resolves the given path against this file.void
setLastModified(long time)
Sets the last-modified time of the file or directory.ClusterMirroredLocalDataFile
toClusterMirroredLocalDataFile()
Returns aClusterMirroredLocalDataFile
with the same relative path of this file.URL
toURL()
Returns a URL that represents this file.void
write(InputStream inputStream)
Copies the given input stream's content into this file.-
Methods inherited from class lumis.portal.filesystem.IFile
copyTo, equals, getExtension, getName, getPath, hashCode, isDescendentOf, isEmpty, isRoot, listFiles, readString, readString, relativize, toString, write, write, write, write
-
-
-
-
Constructor Detail
-
LocalDataFile
public LocalDataFile(String relativePath)
Creates a new instance with the given relative path.- Parameters:
relativePath
- the relative path.- Since:
- 8.0.0
-
-
Method Detail
-
getFile
public File getFile()
-
getInputStream
public InputStream getInputStream() throws IOException
Description copied from class:IFile
Returns anInputStream
to be used to read this file.If the named file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading then a
FileNotFoundException
is thrown.The stream must be closed by the caller of this method. A try-finally statement is recommended to guarantee it is closed.
- Specified by:
getInputStream
in interfaceIInputStreamProvider
- Returns:
- an InputStream to be used to read this file.
- Throws:
FileNotFoundException
- If the named file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for readingIOException
- If an I/O error occurred
-
getOutputStream
public OutputStream getOutputStream() throws IOException
Description copied from class:IFile
Returns anOutputStream
that writes to this file.Any existent content in the file will be discarded and replaced with the content written to this output stream.
The new file content will only be available after
OutputStream.close()
is called.
If the file exists but is a directory rather than a regular file, does not exist but cannot be created, the parent directory does not exist, or cannot be opened for any other reason then a
FileNotFoundException
is thrown. This exception can be thrown in at any time between this call and the call ofOutputStream.close()
.The stream must be closed by the caller of this method. A try-finally statement is recommended to guarantee it is closed.
- Returns:
- an OutputStream to be used to write this file.
- Throws:
FileNotFoundException
- If the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reasonIOException
- If an I/O error occurred
-
getParent
public LocalDataFile getParent()
Description copied from class:IFile
Returns the parentdirectory
. If this is already the root of thebase folder
defined inportal file path
,null
is returned. In other words, ifIFile.getPath()
.getRelativePath()
is an empty string,null
is returned.- Overrides:
getParent
in classIFile
- Returns:
- the parent
directory
- See Also:
PortalFilePath.getParent()
-
getRoot
public LocalDataFile getRoot()
Description copied from class:IFile
Returns the root folder of this file. If this fileis already the root
, then an equivalent object will be returned.
-
resolve
public LocalDataFile resolve(String relativePath)
Description copied from class:IFile
Resolves the given path against this file. Thepath
must not be an absolute path. In other words, it cannot begin with a/
.The path of a file is composed by elements separated by
/
. The resolve process consists in create a new file using this file's relative path concatenated with a/
and the given relative path. If the given relative path contains an element..
it means this..
and the previous element will be eliminated (for examplemy/folder/../file.txt
will becomemy/file.txt
).- Overrides:
resolve
in classIFile
- Parameters:
relativePath
- the relative path to be resolved.- Returns:
- a file relative to this one.
- See Also:
PortalFilePath.resolve(String)
-
calculateBasePath
protected String calculateBasePath()
Returns the base file system path for this file.- Returns:
- the base file system path for this file.
-
fromAbsolutePath
public static LocalDataFile fromAbsolutePath(String absolutePath)
Returns aLocalDataFile
resolved from an absolute file path.- Parameters:
absolutePath
- the absolute file path- Returns:
- a
LocalDataFile
resolved from an absolute file path. - Throws:
IllegalArgumentException
- if the absolute file path couldn't be relativized fromlocal data
folder.- Since:
- 8.0.0
-
toClusterMirroredLocalDataFile
public ClusterMirroredLocalDataFile toClusterMirroredLocalDataFile()
Returns aClusterMirroredLocalDataFile
with the same relative path of this file.- Returns:
- a
ClusterMirroredLocalDataFile
with the same relative path of this file. - Since:
- 8.0.0
-
delete
public void delete() throws IOException
Description copied from class:IFile
Deletes the file or directory. If this denotes a directory, then the directory must be empty in order to be deleted. If this file doesn't exist already, no exception will be raised.- Specified by:
delete
in classIFile
- Throws:
FileCouldNotBeDeletedException
- if this file could not be deletedIOException
- if other error occur
-
renameTo
public void renameTo(IFile dest2) throws FileCouldNotBeRenamedException, FileNotFoundException, IOException
Description copied from class:IFile
Renames the file denoted by this logical filesystem object. This operation is equivalent to:copyTo(dest);
deleteRecursively();IFile.copyTo(IFile)
andIFile.deleteRecursively()
.- Overrides:
renameTo
in classIFile
- Parameters:
dest2
- The new logical filesystem object for the named file- Throws:
FileCouldNotBeRenamedException
- if the file could not be renamed for some reasonFileNotFoundException
- if this file doesn't existIOException
- if other error occur
-
deleteRecursively
public void deleteRecursively() throws IOException
Description copied from class:IFile
Tries to delete the file or directory recursively. If the deletion of some file or directory fails the deletion will not be complete, but some files and/or directories might already have been deleted.In other words, it is not guaranteed that either all files and directories will be deleted or none of the files and directories will be deleted.
If this file doesn't exist already, no exception will be raised.
- Specified by:
deleteRecursively
in classIFile
- Throws:
FileCouldNotBeDeletedException
- if some file or directory couldn't be deletedIOException
- if other error occur
-
mkdirs
public void mkdirs() throws IOException
Description copied from class:IFile
Creates the directory named by this logical filesystem object, including any necessary but nonexistent parent directories. Note that if this operation fails it may have succeeded in creating some of the necessary parent directories.- Specified by:
mkdirs
in classIFile
- Throws:
DirectoryCouldNotBeCreatedException
- if some of the needed directories could not be createdIOException
- if other error occur
-
exists
public boolean exists() throws IOException
Description copied from class:IFile
Tests whether the file or directory exists.- Specified by:
exists
in classIFile
- Returns:
true
if and only if the file or directory exists;false
otherwise- Throws:
IOException
- if some error occur during this operation
-
isDirectory
public boolean isDirectory() throws IOException
Description copied from class:IFile
Tests whether the file is a directory.- Specified by:
isDirectory
in classIFile
- Returns:
true
if and only if the file exists and is a directory;false
otherwise- Throws:
IOException
- if some error occur during this operation
-
isFile
public boolean isFile() throws IOException
Description copied from class:IFile
Tests whether the file denoted by thisIFile
is an actual file. This test might be system-dependent.- Specified by:
isFile
in classIFile
- Returns:
true
if and only if the file denoted by thisIFile
exists and is an actual file;false
otherwise- Throws:
IOException
- if some error occur during this operation
-
setLastModified
public void setLastModified(long time) throws IOException
Description copied from class:IFile
Sets the last-modified time of the file or directory.- Specified by:
setLastModified
in classIFile
- Parameters:
time
- The new last-modified time, measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970)- Throws:
FileNotFoundException
- If this file does not existIOException
- if other error occur
-
listFiles
public IFile[] listFiles() throws IOException
Description copied from class:IFile
Lists all immediate sub files and directories of this directory (the files and directories whoseIFile.getParent()
is equal to this).- Specified by:
listFiles
in classIFile
- Returns:
- all immediate sub files and directories of this directory; an empty list if this directory has no files and no directories.
- Throws:
FileNotFoundException
- if this file doesn't existFileIsNotDirectoryException
- if this file does not denote a directoryIOException
- if other error occur
-
getLastModified
public long getLastModified() throws IOException
Description copied from class:IFile
Returns the time that the file or directory was last modified.- Specified by:
getLastModified
in classIFile
- Returns:
- A
long
value representing the time the file was last modified, measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970) - Throws:
FileNotFoundException
- If this file does not existIOException
- if other error occur
-
getLength
public long getLength() throws IOException
Description copied from class:IFile
Returns the length of the file.- Specified by:
getLength
in classIFile
- Returns:
- The length, in bytes, of the file.
- Throws:
NotFileException
- if this is not a fileFileNotFoundException
- If this file does not existIOException
- if other error occur
-
copyRegularFileTo
protected void copyRegularFileTo(IFile dest) throws IOException
Description copied from class:IFile
Copies this file, assuming it is a regular file, to the specified destination.- Overrides:
copyRegularFileTo
in classIFile
- Parameters:
dest
- the copy destination.- Throws:
IOException
- if I/O error occurred.
-
write
public void write(InputStream inputStream) throws IOException
Description copied from class:IFile
Copies the given input stream's content into this file.- Overrides:
write
in classIFile
- Parameters:
inputStream
- the input stream.- Throws:
IOException
-
readBytes
public byte[] readBytes() throws IOException
Description copied from class:IFile
Reads this file content in bytes.- Overrides:
readBytes
in classIFile
- Returns:
- this file content in bytes.
- Throws:
IOException
-
toURL
public URL toURL() throws IOException
Description copied from class:IFile
Returns a URL that represents this file. The URL must, at least, provide means of accessing this file'sinput stream
by implementingURLConnection.getInputStream()
.- Specified by:
toURL
in classIFile
- Returns:
- a URL that represents this file.
- Throws:
IOException
- if some error occur.
-
-