ccs.cpc.impl
Class ResultsVFile

java.lang.Object
  extended by ccs.cpc.VFile
      extended by ccs.cpc.impl.ResultsVFile

 class ResultsVFile
extends VFile


Nested Class Summary
 
Nested classes/interfaces inherited from class ccs.cpc.VFile
VFile.BasicRSSorter, VFile.ExtnSorter, VFile.NameSorter
 
Field Summary
 
Fields inherited from class ccs.cpc.VFile
hitpoints, isSelected
 
Constructor Summary
ResultsVFile(ResultsVDevice device)
           
 
Method Summary
 void acceptReal(java.lang.String leafname, ccs.utils.SwappingBuffer data)
          Directories: copy this data into yourself, creating a VFile for it.
 void acceptVirtual(VFile vf)
          Directories: accept this VFile.
 boolean contains(java.lang.String leafname)
          Directories: have you a file called this?
 void delete(VFile vf)
           
 VFile getContainee(java.lang.String leafname)
          Directories: you contain this, we'd like it.
 VFile[] getContents()
          Directories: your contents please.
 java.lang.String getDisplayName(VFile vf)
          Directories: return the display name of the supplied VFile.
 VFileMeta getMetadata()
          Return metadata for yourself, if available.
 long getSize()
          Files: return your size, if known, else -1L.
 int indexOf(VFile vf)
          Find the index of the specified VFile within the result set, or -1.
 boolean isExist()
          Does this file still exist?
 boolean isWritable()
          whether this vfile can be updated (i.e. virtualised).
 void mkdir(java.lang.String leafname)
          Directories: create this subdir.
 ccs.utils.SwappingBuffer realiseAsBuffer()
          For leaf nodes, put your data into a SwappingBuffer.
 java.io.File realiseAsFile()
          For leaf nodes: turn this VFile into a disk File.
 void rename(VFile vf, java.lang.String newname)
          Directories: rename the attached VFile to the name given.
(package private)  void setContent(VFile[] newcontent)
           
 void virtualiseFromFile(java.io.File f, boolean maybeChanged)
          For leaf nodes, your contents becomes the contents of the supplied physical file (which is usually an updated form of the result of a realise() earlier).
 void virtualiseFromWad(byte[] wad, boolean maybeChanged)
          For leaf nodes, your contents become the contents of the supplied wad.
 void wipe(VFile vf)
          Directories: wipe this VFile and its contents from the face of the world.
 
Methods inherited from class ccs.cpc.VFile
createRealiseMonitor, disposeRealiseMonitor, equals, fsanitise, getDecoratedName, getDevice, getID, getName, getParent, getPath, getTrackingParent, hashCode, hasInternalSeparator, isDir, isRealiseInstant, normaliseName, postrecursionHook, prerecursionHook, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ResultsVFile

ResultsVFile(ResultsVDevice device)
       throws java.io.IOException
Throws:
java.io.IOException
Method Detail

indexOf

public int indexOf(VFile vf)
Find the index of the specified VFile within the result set, or -1.


acceptVirtual

public void acceptVirtual(VFile vf)
Description copied from class: VFile
Directories: accept this VFile. Only applicable to inhabitants of Result sets and any other (currently undefined) VDevice for which isReal() is false.

Overrides:
acceptVirtual in class VFile

realiseAsFile

public java.io.File realiseAsFile()
                           throws java.io.IOException,
                                  ccs.LoseException,
                                  ccs.ArghException
Description copied from class: VFile
For leaf nodes: turn this VFile into a disk File. This should only be used where a file is really necessary (e.g. external viewers). For all other uses, prefer realiseAsBuffer to suppress redundant copies. This is an identity operation for DiskVFiles.

Specified by:
realiseAsFile in class VFile
Throws:
java.io.IOException
ccs.LoseException
ccs.ArghException

virtualiseFromFile

public void virtualiseFromFile(java.io.File f,
                               boolean maybeChanged)
                        throws java.io.IOException,
                               ccs.LoseException,
                               ccs.ArghException
Description copied from class: VFile
For leaf nodes, your contents becomes the contents of the supplied physical file (which is usually an updated form of the result of a realise() earlier). any copy other than yourself must vanish. maybeChanged is true if the operation for which it was realise might have changed it - if false no update is necessary. A NOP for DiskVFiles, an update() and FileKill for ArchVFiles.

Specified by:
virtualiseFromFile in class VFile
Throws:
java.io.IOException
ccs.LoseException
ccs.ArghException

realiseAsBuffer

public ccs.utils.SwappingBuffer realiseAsBuffer()
                                         throws java.io.IOException,
                                                ccs.LoseException,
                                                ccs.ArghException
Description copied from class: VFile
For leaf nodes, put your data into a SwappingBuffer. The preferred method of access to data.

Specified by:
realiseAsBuffer in class VFile
Throws:
java.io.IOException
ccs.LoseException
ccs.ArghException

virtualiseFromWad

public void virtualiseFromWad(byte[] wad,
                              boolean maybeChanged)
                       throws java.io.IOException
Description copied from class: VFile
For leaf nodes, your contents become the contents of the supplied wad. See virtualiseFromFile.

Specified by:
virtualiseFromWad in class VFile
Throws:
java.io.IOException

isWritable

public boolean isWritable()
                   throws java.io.IOException
Description copied from class: VFile
whether this vfile can be updated (i.e. virtualised).

Specified by:
isWritable in class VFile
Throws:
java.io.IOException

isExist

public boolean isExist()
                throws java.io.IOException,
                       ccs.LoseException,
                       ccs.ArghException
Description copied from class: VFile
Does this file still exist?

Specified by:
isExist in class VFile
Throws:
java.io.IOException
ccs.LoseException
ccs.ArghException

getDisplayName

public java.lang.String getDisplayName(VFile vf)
Description copied from class: VFile
Directories: return the display name of the supplied VFile. This API is targeted at the ResultsVFile; all regular VFiles can use the default.

Overrides:
getDisplayName in class VFile

contains

public boolean contains(java.lang.String leafname)
                 throws java.io.IOException,
                        ccs.LoseException,
                        ccs.ArghException
Description copied from class: VFile
Directories: have you a file called this? Directory with final separator.

Specified by:
contains in class VFile
Throws:
java.io.IOException
ccs.LoseException
ccs.ArghException

getContainee

public VFile getContainee(java.lang.String leafname)
                   throws java.io.IOException,
                          ccs.LoseException,
                          ccs.ArghException
Description copied from class: VFile
Directories: you contain this, we'd like it. Directory with final separator.

Specified by:
getContainee in class VFile
Throws:
java.io.IOException
ccs.LoseException
ccs.ArghException

getContents

public VFile[] getContents()
Description copied from class: VFile
Directories: your contents please.

Specified by:
getContents in class VFile

mkdir

public void mkdir(java.lang.String leafname)
           throws java.io.IOException,
                  ccs.LoseException,
                  ccs.ArghException
Description copied from class: VFile
Directories: create this subdir. The name may or may not have a terminal separator.

Specified by:
mkdir in class VFile
Throws:
java.io.IOException
ccs.LoseException
ccs.ArghException

acceptReal

public void acceptReal(java.lang.String leafname,
                       ccs.utils.SwappingBuffer data)
                throws java.io.IOException,
                       ccs.LoseException,
                       ccs.ArghException
Description copied from class: VFile
Directories: copy this data into yourself, creating a VFile for it. This is the basis for moving / copying. Implementations should tolerate (and strip out) any terminal separator character.

Specified by:
acceptReal in class VFile
Throws:
java.io.IOException
ccs.LoseException
ccs.ArghException

delete

public void delete(VFile vf)
            throws java.io.IOException,
                   ccs.LoseException,
                   ccs.ArghException
Throws:
java.io.IOException
ccs.LoseException
ccs.ArghException

wipe

public void wipe(VFile vf)
          throws java.io.IOException,
                 ccs.LoseException,
                 ccs.ArghException
Description copied from class: VFile
Directories: wipe this VFile and its contents from the face of the world. It never existed. If the VFile is a directory, it must be empty.

Specified by:
wipe in class VFile
Throws:
java.io.IOException
ccs.LoseException
ccs.ArghException

rename

public void rename(VFile vf,
                   java.lang.String newname)
            throws java.io.IOException,
                   ccs.LoseException,
                   ccs.ArghException
Description copied from class: VFile
Directories: rename the attached VFile to the name given. The VFile might be a folder. The name may or may not have a terminal separator; implementations should tolerate any combination. (Folder with / without, file with / without).

Specified by:
rename in class VFile
Throws:
java.io.IOException
ccs.LoseException
ccs.ArghException

getMetadata

public VFileMeta getMetadata()
                      throws java.io.IOException
Description copied from class: VFile
Return metadata for yourself, if available. Else null.

Specified by:
getMetadata in class VFile
Throws:
java.io.IOException

getSize

public long getSize()
             throws java.io.IOException
Description copied from class: VFile
Files: return your size, if known, else -1L. This is part of what you need to return for getMetadata - hopefully this is slightly lighter weight.

Specified by:
getSize in class VFile
Throws:
java.io.IOException

setContent

void setContent(VFile[] newcontent)