Package org.apache.jackrabbit.core.fs
Class BasedFileSystem
- java.lang.Object
-
- org.apache.jackrabbit.core.fs.BasedFileSystem
-
- All Implemented Interfaces:
FileSystem
public class BasedFileSystem extends Object implements FileSystem
ABasedFileSystem
represents a 'file system in a file system'.
-
-
Field Summary
Fields Modifier and Type Field Description protected String
basePath
protected FileSystem
fsBase
-
Fields inherited from interface org.apache.jackrabbit.core.fs.FileSystem
SEPARATOR, SEPARATOR_CHAR
-
-
Constructor Summary
Constructors Constructor Description BasedFileSystem(FileSystem fsBase, String relRootPath)
Creates a newBasedFileSystem
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
buildBasePath(String path)
void
close()
Close the file system.void
createFolder(String folderPath)
Creates the folder named by this path, including any necessary but nonexistent parent folders.void
deleteFile(String filePath)
Deletes the file denoted by this path.void
deleteFolder(String folderPath)
Deletes the folder denoted by this path.boolean
exists(String path)
Tests whether the file system entry denoted by this path exists.InputStream
getInputStream(String filePath)
Returns an input stream of the contents of the file denoted by this path.OutputStream
getOutputStream(String filePath)
Returns an output stream for writing bytes to the file denoted by this path.boolean
hasChildren(String path)
Tests whether the file system entry denoted by this path has child entries.void
init()
Initialize the file systemboolean
isFile(String path)
Tests whether the file system entry denoted by this path exists and is a file.boolean
isFolder(String path)
Tests whether the file system entry denoted by this path exists and is a folder.long
lastModified(String path)
Returns the time that the file system entry denoted by this path was last modified.long
length(String filePath)
Returns the length of the file denoted by this path.String[]
list(String folderPath)
Returns an array of strings naming the files and folders in the folder denoted by this path.String[]
listFiles(String folderPath)
Returns an array of strings naming the files in the folder denoted by this path.String[]
listFolders(String folderPath)
Returns an array of strings naming the folders in the folder denoted by this path.
-
-
-
Field Detail
-
fsBase
protected final FileSystem fsBase
-
basePath
protected final String basePath
-
-
Constructor Detail
-
BasedFileSystem
public BasedFileSystem(FileSystem fsBase, String relRootPath)
Creates a newBasedFileSystem
- Parameters:
fsBase
- theFileSystem
the new file system should be based onrelRootPath
- the root path relative tofsBase
's root
-
-
Method Detail
-
init
public void init() throws FileSystemException
Initialize the file system- Specified by:
init
in interfaceFileSystem
- Throws:
FileSystemException
- if the file system initialization fails
-
close
public void close() throws FileSystemException
Close the file system. After calling this method, the file system is no longer accessible.- Specified by:
close
in interfaceFileSystem
- Throws:
FileSystemException
-
createFolder
public void createFolder(String folderPath) throws FileSystemException
Creates the folder named by this path, including any necessary but nonexistent parent folders. Note that if this operation fails it may have succeeded in creating some of the necessary parent folders.- Specified by:
createFolder
in interfaceFileSystem
- Parameters:
folderPath
- the path of the folder to be created.- Throws:
FileSystemException
- if a file system entry denoted by path already exists or if another error occurs.
-
deleteFile
public void deleteFile(String filePath) throws FileSystemException
Deletes the file denoted by this path.- Specified by:
deleteFile
in interfaceFileSystem
- Parameters:
filePath
- the path of the file to be deleted.- Throws:
FileSystemException
- if this path does not denote a file or if another error occurs.
-
deleteFolder
public void deleteFolder(String folderPath) throws FileSystemException
Deletes the folder denoted by this path. Any contents of this folder (folders and files) will be deleted recursively.- Specified by:
deleteFolder
in interfaceFileSystem
- Parameters:
folderPath
- the path of the folder to be deleted.- Throws:
FileSystemException
- if this path does not denote a folder or if another error occurs.
-
exists
public boolean exists(String path) throws FileSystemException
Tests whether the file system entry denoted by this path exists.- Specified by:
exists
in interfaceFileSystem
- Parameters:
path
- the path of a file system entry.- Returns:
- true if the file system entry at path exists; false otherwise.
- Throws:
FileSystemException
-
getInputStream
public InputStream getInputStream(String filePath) throws FileSystemException
Returns an input stream of the contents of the file denoted by this path.- Specified by:
getInputStream
in interfaceFileSystem
- Parameters:
filePath
- the path of the file.- Returns:
- an input stream of the contents of the file.
- Throws:
FileSystemException
- if the file does not exist or if it cannot be read from
-
getOutputStream
public OutputStream getOutputStream(String filePath) throws FileSystemException
Returns an output stream for writing bytes to the file denoted by this path. The file will be created if it doesn't exist. If the file exists, its contents will be overwritten.- Specified by:
getOutputStream
in interfaceFileSystem
- Parameters:
filePath
- the path of the file.- Returns:
- an output stream for writing bytes to the file.
- Throws:
FileSystemException
- if the file cannot be written to or created
-
hasChildren
public boolean hasChildren(String path) throws FileSystemException
Tests whether the file system entry denoted by this path has child entries.- Specified by:
hasChildren
in interfaceFileSystem
- Parameters:
path
- the path of a file system entry.- Returns:
- true if the file system entry at path has child entries; false otherwise.
- Throws:
FileSystemException
-
isFile
public boolean isFile(String path) throws FileSystemException
Tests whether the file system entry denoted by this path exists and is a file.- Specified by:
isFile
in interfaceFileSystem
- Parameters:
path
- the path of a file system entry.- Returns:
- true if the file system entry at path is a file; false otherwise.
- Throws:
FileSystemException
-
isFolder
public boolean isFolder(String path) throws FileSystemException
Tests whether the file system entry denoted by this path exists and is a folder.- Specified by:
isFolder
in interfaceFileSystem
- Parameters:
path
- the path of a file system entry.- Returns:
- true if the file system entry at path is a folder; false otherwise.
- Throws:
FileSystemException
-
lastModified
public long lastModified(String path) throws FileSystemException
Returns the time that the file system entry denoted by this path was last modified.- Specified by:
lastModified
in interfaceFileSystem
- Parameters:
path
- the path of a file system entry.- Returns:
- A long value representing the time the file system entry was last modified, measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970), or 0L if the modification time can't be determined.
- Throws:
FileSystemException
- if the file system entry does not exist.
-
length
public long length(String filePath) throws FileSystemException
Returns the length of the file denoted by this path.- Specified by:
length
in interfaceFileSystem
- Parameters:
filePath
- the path of the file.- Returns:
- The length, in bytes, of the file denoted by this path, or -1L if the length can't be determined.
- Throws:
FileSystemException
- if the path does not denote an existing file.
-
list
public String[] list(String folderPath) throws FileSystemException
Returns an array of strings naming the files and folders in the folder denoted by this path.- Specified by:
list
in interfaceFileSystem
- Parameters:
folderPath
- the path of the folder whose contents is to be listed.- Returns:
- an array of strings naming the files and folders in the folder denoted by this path.
- Throws:
FileSystemException
- if this path does not denote a folder or if another error occurs.
-
listFiles
public String[] listFiles(String folderPath) throws FileSystemException
Returns an array of strings naming the files in the folder denoted by this path.- Specified by:
listFiles
in interfaceFileSystem
- Parameters:
folderPath
- the path of the folder whose contents is to be listed.- Returns:
- an array of strings naming the files in the folder denoted by this path.
- Throws:
FileSystemException
- if this path does not denote a folder or if another error occurs.
-
listFolders
public String[] listFolders(String folderPath) throws FileSystemException
Returns an array of strings naming the folders in the folder denoted by this path.- Specified by:
listFolders
in interfaceFileSystem
- Parameters:
folderPath
- the path of the folder whose contents is to be listed.- Returns:
- an array of strings naming the folders in the folder denoted by this path.
- Throws:
FileSystemException
- if this path does not denote a folder or if another error occurs.
-
-