public class SftpFileObject extends AbstractFileObject<SftpFileSystem>
| Modifier and Type | Class and Description |
|---|---|
private class |
SftpFileObject.SftpInputStream
An InputStream that monitors for end-of-file.
|
private class |
SftpFileObject.SftpOutputStream
An OutputStream that wraps an sftp OutputStream, and closes the channel when the stream is closed.
|
| Modifier and Type | Field and Description |
|---|---|
private com.jcraft.jsch.SftpATTRS |
attrs |
private boolean |
inRefresh |
private static long |
MOD_TIME_FACTOR |
private java.lang.String |
relPath |
| Modifier | Constructor and Description |
|---|---|
protected |
SftpFileObject(AbstractFileName name,
SftpFileSystem fileSystem) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
doCreateFolder()
Creates this file as a folder.
|
protected void |
doDelete()
Deletes the file.
|
protected void |
doDetach()
Detaches this file object from its file resource.
|
protected long |
doGetContentSize()
Returns the size of the file content (in bytes).
|
protected java.io.InputStream |
doGetInputStream()
Creates an input stream to read the file content from.
|
protected long |
doGetLastModifiedTime()
Returns the last modified time of this file.
|
protected java.io.OutputStream |
doGetOutputStream(boolean bAppend)
Creates an output stream to write the file content to.
|
protected RandomAccessContent |
doGetRandomAccessContent(RandomAccessMode mode)
Creates access to the file for random i/o.
|
protected FileType |
doGetType()
Determines the type of this file, returns null if the file does not exist.
|
protected boolean |
doIsExecutable()
Determines if this file is executable.
|
protected boolean |
doIsReadable()
Determines if this file can be read.
|
protected boolean |
doIsWriteable()
Determines if this file can be written to.
|
protected java.lang.String[] |
doListChildren()
Lists the children of this file.
|
protected FileObject[] |
doListChildrenResolved()
Lists the children of this file.
|
protected void |
doRename(FileObject newFile)
Renames the file.
|
protected boolean |
doSetExecutable(boolean executable,
boolean ownerOnly)
Make the file executable.
|
protected boolean |
doSetLastModifiedTime(long modtime)
Sets the last modified time of this file.
|
protected boolean |
doSetReadable(boolean readable,
boolean ownerOnly)
Make the file or folder readable.
|
protected boolean |
doSetWritable(boolean writable,
boolean ownerOnly)
Make the file or folder writeable.
|
private void |
flushStat() |
(package private) java.io.InputStream |
getInputStream(long filePointer)
Creates an input stream to read the file content from.
|
protected PosixPermissions |
getPermissions(boolean checkIds)
Returns the POSIX type permissions of the file.
|
protected void |
onChange()
Called when the type or content of this file changes.
|
private void |
setStat(com.jcraft.jsch.SftpATTRS attrs)
Sets attrs from listChildrenResolved
|
private void |
statSelf()
Fetches file attributes from server.
|
canRenameTo, childrenChanged, close, compareTo, copyFrom, createFile, createFolder, delete, delete, deleteAll, doAttach, doCreateFileContent, doGetAttributes, doGetCertificates, doIsHidden, doIsSameFile, doIsSymbolicLink, doRemoveAttribute, doSetAttribute, endOutput, exists, finalize, findFiles, findFiles, getAbstractFileSystem, getChild, getChildren, getContent, getFileContentInfoFactory, getFileOperations, getFileSystem, getInputStream, getName, getOutputStream, getOutputStream, getParent, getPublicURIString, getRandomAccessContent, getType, getURL, handleChanged, handleCreate, handleDelete, holdObject, injectType, isAttached, isContentOpen, isExecutable, isFile, isFolder, isHidden, isReadable, isSameFile, isSymbolicLink, isWriteable, iterator, listFiles, moveTo, notifyAllStreamsClosed, onChildrenChanged, refresh, resolveFile, resolveFile, setExecutable, setReadable, setWritable, toStringprivate static final long MOD_TIME_FACTOR
private com.jcraft.jsch.SftpATTRS attrs
private final java.lang.String relPath
private boolean inRefresh
protected SftpFileObject(AbstractFileName name, SftpFileSystem fileSystem) throws FileSystemException
FileSystemExceptionprotected void doDetach()
throws java.lang.Exception
AbstractFileObjectCalled when this file is closed. Note that the file object may be reused later, so should be able to be reattached.
This implementation does nothing.
doDetach in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.protected FileType doGetType() throws java.lang.Exception
doGetType in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.protected void onChange()
throws java.lang.Exception
onChange in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.private void statSelf()
throws java.io.IOException
java.io.IOExceptionprivate void setStat(com.jcraft.jsch.SftpATTRS attrs)
protected void doCreateFolder()
throws java.lang.Exception
doCreateFolder in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.protected long doGetLastModifiedTime()
throws java.lang.Exception
AbstractFileObjectAbstractFileObject.doGetType() does not return
FileType.IMAGINARY.
This implementation throws an exception.
doGetLastModifiedTime in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.protected boolean doSetLastModifiedTime(long modtime)
throws java.lang.Exception
doGetType() does not return
FileType.IMAGINARY.doSetLastModifiedTime in class AbstractFileObject<SftpFileSystem>modtime - is modification time in milliseconds. SFTP protocol can send times with nanosecond precision but
at the moment jsch send them with second precision.java.lang.Exception - Any Exception thrown is wrapped in FileSystemException.private void flushStat()
throws java.io.IOException,
com.jcraft.jsch.SftpException
java.io.IOExceptioncom.jcraft.jsch.SftpExceptionprotected void doDelete()
throws java.lang.Exception
doDelete in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.protected void doRename(FileObject newFile) throws java.lang.Exception
doRename in class AbstractFileObject<SftpFileSystem>newFile - A FileObject with the new file name.java.lang.Exception - if an error occurs.protected PosixPermissions getPermissions(boolean checkIds) throws java.lang.Exception
checkIds - true if user and group ID should be checked (needed for some access rights checks)java.lang.Exception - If an error occursprotected boolean doIsReadable()
throws java.lang.Exception
AbstractFileObjectAbstractFileObject.doGetType() does not return
FileType.IMAGINARY.
This implementation always returns true.
doIsReadable in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.protected boolean doSetReadable(boolean readable,
boolean ownerOnly)
throws java.lang.Exception
AbstractFileObject
Only called if AbstractFileObject.doGetType() does not return FileType.IMAGINARY.
This implementation returns false.
doSetReadable in class AbstractFileObject<SftpFileSystem>readable - True to allow access, false to disallowownerOnly - If true, the permission applies only to the owner; otherwise, it applies to everybody.java.lang.Exception - Any Exception thrown is wrapped in FileSystemException.AbstractFileObject.setReadable(boolean, boolean)protected boolean doIsWriteable()
throws java.lang.Exception
AbstractFileObjectAbstractFileObject.doGetType() does not return
FileType.IMAGINARY.
This implementation always returns true.
doIsWriteable in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.protected boolean doSetWritable(boolean writable,
boolean ownerOnly)
throws java.lang.Exception
AbstractFileObject
Only called if AbstractFileObject.doGetType() does not return FileType.IMAGINARY.
doSetWritable in class AbstractFileObject<SftpFileSystem>writable - True to allow access, false to disallowownerOnly - If true, the permission applies only to the owner; otherwise, it applies to everybody.java.lang.Exception - Any Exception thrown is wrapped in FileSystemException.AbstractFileObject.setWritable(boolean, boolean)protected boolean doIsExecutable()
throws java.lang.Exception
AbstractFileObjectAbstractFileObject.doGetType() does not return
FileType.IMAGINARY.
This implementation always returns false.
doIsExecutable in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.protected boolean doSetExecutable(boolean executable,
boolean ownerOnly)
throws java.lang.Exception
AbstractFileObject
Only called if AbstractFileObject.doGetType() does not return FileType.IMAGINARY.
This implementation returns false.
doSetExecutable in class AbstractFileObject<SftpFileSystem>executable - True to allow access, false to disallow.ownerOnly - If true, the permission applies only to the owner; otherwise, it applies to everybody.java.lang.Exception - Any Exception thrown is wrapped in FileSystemException.AbstractFileObject.setExecutable(boolean, boolean)protected FileObject[] doListChildrenResolved() throws java.lang.Exception
doListChildrenResolved in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.protected java.lang.String[] doListChildren()
throws java.lang.Exception
doListChildren in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.protected long doGetContentSize()
throws java.lang.Exception
doGetContentSize in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.protected RandomAccessContent doGetRandomAccessContent(RandomAccessMode mode) throws java.lang.Exception
AbstractFileObjectAbstractFileObject.doGetType() returns FileType.FILE.
It is guaranteed that there are no open output streams for this file when this method is called.
doGetRandomAccessContent in class AbstractFileObject<SftpFileSystem>mode - The mode to access the file.java.lang.Exception - if an error occurs.java.io.InputStream getInputStream(long filePointer)
throws java.io.IOException
java.io.IOExceptionprotected java.io.InputStream doGetInputStream()
throws java.lang.Exception
doGetInputStream in class AbstractFileObject<SftpFileSystem>java.lang.Exception - if an error occurs.protected java.io.OutputStream doGetOutputStream(boolean bAppend)
throws java.lang.Exception
doGetOutputStream in class AbstractFileObject<SftpFileSystem>bAppend - true if the file should be appended to, false if it should be overwritten.java.lang.Exception - if an error occurs.