org.apache.commons.vfs.provider.ram
Class RamFileObject

java.lang.Object
  extended by org.apache.commons.vfs.provider.AbstractFileObject
      extended by org.apache.commons.vfs.provider.ram.RamFileObject
All Implemented Interfaces:
FileObject

public class RamFileObject
extends AbstractFileObject
implements FileObject

A RAM File contains a single RAM FileData instance, it provides methods to access the data by implementing FileObject interface.


Field Summary
private  RamFileData data
          RAM File Object Data
(package private)  RamFileSystem fs
          File System
 
Constructor Summary
protected RamFileObject(FileName name, RamFileSystem fs)
           
 
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  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.
protected  java.lang.String[] doListChildren()
          Lists the children of this file.
protected  void doRename(FileObject newfile)
          Renames the file.
protected  void doSetLastModifiedTime(long modtime)
          Sets the last modified time of this file.
protected  void endOutput()
          Called when the ouput stream for this file is closed.
(package private)  RamFileData getData()
           
protected  void injectType(FileType fileType)
           
(package private)  void resize(int newSize)
           
private  void save()
           
(package private)  void setData(RamFileData data)
           
(package private)  int size()
           
 
Methods inherited from class org.apache.commons.vfs.provider.AbstractFileObject
canRenameTo, childrenChanged, childrenChanged, close, copyFrom, createFile, createFolder, delete, delete, doDetach, doGetAttributes, doGetCertificates, doIsHidden, doIsReadable, doIsSameFile, doIsWriteable, doListChildrenResolved, doSetAttribute, exists, finalize, findFiles, findFiles, getChild, getChildren, getContent, getFileContentInfoFactory, getFileOperations, getFileSystem, getInputStream, getName, getOutputStream, getOutputStream, getParent, getRandomAccessContent, getType, getURL, handleChanged, handleCreate, handleDelete, holdObject, isAttached, isContentOpen, isHidden, isReadable, isSameFile, isWriteable, moveTo, notifyAllStreamsClosed, onChange, onChildrenChanged, refresh, resolveFile, resolveFile, toString
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.commons.vfs.FileObject
canRenameTo, close, copyFrom, createFile, createFolder, delete, delete, exists, findFiles, findFiles, getChild, getChildren, getContent, getFileOperations, getFileSystem, getName, getParent, getType, getURL, isAttached, isContentOpen, isHidden, isReadable, isWriteable, moveTo, refresh, resolveFile, resolveFile
 

Field Detail

fs

RamFileSystem fs
File System


data

private RamFileData data
RAM File Object Data

Constructor Detail

RamFileObject

protected RamFileObject(FileName name,
                        RamFileSystem fs)
Parameters:
name -
fs -
Method Detail

save

private void save()
           throws FileSystemException
Throws:
FileSystemException

doGetType

protected FileType doGetType()
                      throws java.lang.Exception
Description copied from class: AbstractFileObject
Determines the type of this file. Must not return null. The return value of this method is cached, so the implementation can be expensive.

Specified by:
doGetType in class AbstractFileObject
Throws:
java.lang.Exception

doListChildren

protected java.lang.String[] doListChildren()
                                     throws java.lang.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.

Specified by:
doListChildren in class AbstractFileObject
Throws:
java.lang.Exception

doGetContentSize

protected long doGetContentSize()
                         throws java.lang.Exception
Description copied from class: AbstractFileObject
Returns the size of the file content (in bytes). Is only called if AbstractFileObject.doGetType() returns FileType.FILE.

Specified by:
doGetContentSize in class AbstractFileObject
Throws:
java.lang.Exception

doGetInputStream

protected java.io.InputStream doGetInputStream()
                                        throws java.lang.Exception
Description copied from class: AbstractFileObject
Creates an input stream to read the file content from. 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.

The returned stream does not have to be buffered.

Specified by:
doGetInputStream in class AbstractFileObject
Throws:
java.lang.Exception

doGetOutputStream

protected java.io.OutputStream doGetOutputStream(boolean bAppend)
                                          throws java.lang.Exception
Description copied from class: AbstractFileObject
Creates an output stream to write the file content to. Is only called if:

It is guaranteed that there are no open stream (input or output) for this file when this method is called.

The returned stream does not have to be buffered.

This implementation throws an exception.

Overrides:
doGetOutputStream in class AbstractFileObject
Throws:
java.lang.Exception

doDelete

protected void doDelete()
                 throws java.lang.Exception
Description copied from class: AbstractFileObject
Deletes the file. Is only called when:

This implementation throws an exception.

Overrides:
doDelete in class AbstractFileObject
Throws:
java.lang.Exception

doGetLastModifiedTime

protected long doGetLastModifiedTime()
                              throws java.lang.Exception
Description copied from class: AbstractFileObject
Returns the last modified time of this file. Is only called if AbstractFileObject.doGetType() does not return FileType.IMAGINARY.

This implementation throws an exception.

Overrides:
doGetLastModifiedTime in class AbstractFileObject
Throws:
java.lang.Exception

doSetLastModifiedTime

protected void doSetLastModifiedTime(long modtime)
                              throws java.lang.Exception
Description copied from class: AbstractFileObject
Sets the last modified time of this file. Is only called if AbstractFileObject.doGetType() does not return FileType.IMAGINARY.

This implementation throws an exception.

Overrides:
doSetLastModifiedTime in class AbstractFileObject
Throws:
java.lang.Exception

doCreateFolder

protected void doCreateFolder()
                       throws java.lang.Exception
Description copied from class: AbstractFileObject
Creates this file as a folder. Is only called when:

This implementation throws an exception.

Overrides:
doCreateFolder in class AbstractFileObject
Throws:
java.lang.Exception

doRename

protected void doRename(FileObject newfile)
                 throws java.lang.Exception
Description copied from class: AbstractFileObject
Renames the file. Is only called when:

This implementation throws an exception.

Overrides:
doRename in class AbstractFileObject
Throws:
java.lang.Exception

doGetRandomAccessContent

protected RandomAccessContent doGetRandomAccessContent(RandomAccessMode mode)
                                                throws java.lang.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
Throws:
java.lang.Exception

doAttach

protected void doAttach()
                 throws java.lang.Exception
Description copied from class: AbstractFileObject
Attaches this file object to its file resource. This method is called before any of the doBlah() or onBlah() methods. Sub-classes can use this method to perform lazy initialisation.

This implementation does nothing.

Overrides:
doAttach in class AbstractFileObject
Throws:
java.lang.Exception

getData

RamFileData getData()
Returns:
Returns the data.

setData

void setData(RamFileData data)
Parameters:
data - The data to set.

injectType

protected void injectType(FileType fileType)
Overrides:
injectType in class AbstractFileObject

endOutput

protected void endOutput()
                  throws java.lang.Exception
Description copied from class: AbstractFileObject
Called when the ouput stream for this file is closed.

Overrides:
endOutput in class AbstractFileObject
Throws:
java.lang.Exception

size

int size()
Returns:
Returns the size of the RAMFileData

resize

void resize(int newSize)
      throws java.io.IOException
Parameters:
newSize -
Throws:
java.io.IOException - if the new size exceeds the limit