org.apache.commons.vfs2.provider.ftp
Class FtpFileObject

java.lang.Object
  extended by org.apache.commons.vfs2.provider.AbstractFileObject
      extended by org.apache.commons.vfs2.provider.ftp.FtpFileObject
All Implemented Interfaces:
FileObject

public class FtpFileObject
extends AbstractFileObject

An FTP file.

Author:
Commons VFS team

Constructor Summary
protected FtpFileObject(AbstractFileName name, FtpFileSystem fileSystem, FileName rootName)
           
 
Method Summary
protected  void doAttach()
          Attaches this file object to its file resource.
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  InputStream doGetInputStream()
          Creates an input stream to read the file content from.
protected  long doGetLastModifiedTime()
          get the last modified time on an ftp file
protected  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 the file, returns null if the file does not exist.
protected  String[] doListChildren()
          Lists the children of the file.
protected  FileObject[] doListChildrenResolved()
          Lists the children of this file.
protected  void doRename(FileObject newfile)
          Renames the file
 FileObject[] getChildren()
          Returns the file's list of children.
protected  void onChange()
          Called when the type or content of this file changes.
protected  void onChildrenChanged(FileName child, FileType newType)
          Called when the children of this file change.
 void refresh()
          This will prepare the fileObject to get resynchronized with the underlaying filesystem if required.
 
Methods inherited from class org.apache.commons.vfs2.provider.AbstractFileObject
canRenameTo, childrenChanged, close, copyFrom, createFile, createFolder, delete, delete, doCreateFileContent, doGetAttributes, doGetCertificates, doIsHidden, doIsReadable, doIsSameFile, doIsWriteable, doRemoveAttribute, doSetAttribute, doSetLastModifiedTime, endOutput, exists, finalize, findFiles, findFiles, getChild, getContent, getFileContentInfoFactory, getFileOperations, getFileSystem, getInputStream, getName, getOutputStream, getOutputStream, getParent, getRandomAccessContent, getType, getURL, handleChanged, handleCreate, handleDelete, holdObject, injectType, isAttached, isContentOpen, isHidden, isReadable, isSameFile, isWriteable, moveTo, notifyAllStreamsClosed, resolveFile, resolveFile, toString
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FtpFileObject

protected FtpFileObject(AbstractFileName name,
                        FtpFileSystem fileSystem,
                        FileName rootName)
                 throws FileSystemException
Throws:
FileSystemException
Method Detail

doAttach

protected void doAttach()
                 throws IOException
Attaches this file object to its file resource.

Overrides:
doAttach in class AbstractFileObject
Throws:
IOException

refresh

public void refresh()
             throws FileSystemException
Description copied from class: AbstractFileObject
This will prepare the fileObject to get resynchronized with the underlaying filesystem if required.

Specified by:
refresh in interface FileObject
Overrides:
refresh in class AbstractFileObject
Throws:
FileSystemException - if an error occurs.

doDetach

protected void doDetach()
Detaches this file object from its file resource.

Overrides:
doDetach in class AbstractFileObject

onChildrenChanged

protected void onChildrenChanged(FileName child,
                                 FileType newType)
Called when the children of this file change.

Overrides:
onChildrenChanged in class AbstractFileObject
Parameters:
child - The name of the child that changed.
newType - The type of the file.

onChange

protected void onChange()
                 throws IOException
Called when the type or content of this file changes.

Overrides:
onChange in class AbstractFileObject
Throws:
IOException

doGetType

protected FileType doGetType()
                      throws Exception
Determines the type of the file, returns null if the file does not exist.

Specified by:
doGetType in class AbstractFileObject
Returns:
the type of the file.
Throws:
Exception - if an error occurs.

doListChildrenResolved

protected FileObject[] doListChildrenResolved()
                                       throws Exception
Description copied from class: AbstractFileObject
Lists the children of this file. Is only called if AbstractFileObject.doGetType() returns FileType.FOLDER. The return value of this method is cached, so the implementation can be expensive.
Other than doListChildren you could return FileObject's to e.g. reinitialize the type of the file.
(Introduced for Webdav: "permission denied on resource" during getType())

Overrides:
doListChildrenResolved in class AbstractFileObject
Returns:
The children of this FileObject.
Throws:
Exception - if an error occurs.

getChildren

public FileObject[] getChildren()
                         throws FileSystemException
Returns the file's list of children.

Specified by:
getChildren in interface FileObject
Overrides:
getChildren in class AbstractFileObject
Returns:
The list of children
Throws:
FileSystemException - If there was a problem listing children
Since:
2.0
See Also:
AbstractFileObject.getChildren()

doListChildren

protected String[] doListChildren()
                           throws Exception
Lists the children of the file.

Specified by:
doListChildren in class AbstractFileObject
Returns:
a possible empty String array if the file is a directory or null or an exception if the file is not a directory or can't be read.
Throws:
Exception - if an error occurs.

doDelete

protected void doDelete()
                 throws Exception
Deletes the file.

Overrides:
doDelete in class AbstractFileObject
Throws:
Exception - if an error occurs.

doRename

protected void doRename(FileObject newfile)
                 throws Exception
Renames the file

Overrides:
doRename in class AbstractFileObject
Parameters:
newfile - A FileObject with the new file name.
Throws:
Exception - if an error occurs.

doCreateFolder

protected void doCreateFolder()
                       throws Exception
Creates this file as a folder.

Overrides:
doCreateFolder in class AbstractFileObject
Throws:
Exception - if an error occurs.

doGetContentSize

protected long doGetContentSize()
                         throws Exception
Returns the size of the file content (in bytes).

Specified by:
doGetContentSize in class AbstractFileObject
Returns:
The size of the file in bytes.
Throws:
Exception - if an error occurs.

doGetLastModifiedTime

protected long doGetLastModifiedTime()
                              throws Exception
get the last modified time on an ftp file

Overrides:
doGetLastModifiedTime in class AbstractFileObject
Returns:
The last modification time.
Throws:
Exception - if an error occurs.
See Also:
AbstractFileObject.doGetLastModifiedTime()

doGetInputStream

protected InputStream doGetInputStream()
                                throws Exception
Creates an input stream to read the file content from.

Specified by:
doGetInputStream in class AbstractFileObject
Returns:
An InputStream to read the file content.
Throws:
Exception - if an error occurs.

doGetRandomAccessContent

protected RandomAccessContent doGetRandomAccessContent(RandomAccessMode mode)
                                                throws Exception
Description copied from class: AbstractFileObject
Creates access to the file for random i/o. Is only called if AbstractFileObject.doGetType() returns FileType.FILE.

It is guaranteed that there are no open output streams for this file when this method is called.

Overrides:
doGetRandomAccessContent in class AbstractFileObject
Parameters:
mode - The mode to access the file.
Returns:
The RandomAccessContext.
Throws:
Exception - if an error occurs.

doGetOutputStream

protected OutputStream doGetOutputStream(boolean bAppend)
                                  throws Exception
Creates an output stream to write the file content to.

Overrides:
doGetOutputStream in class AbstractFileObject
Parameters:
bAppend - true if the file should be appended to, false if it should be overwritten.
Returns:
An OutputStream to write to the file.
Throws:
Exception - if an error occurs.


Copyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.