Class GutenbergFileEntry

  • All Implemented Interfaces:
    FileEntry

    public class GutenbergFileEntry
    extends java.lang.Object
    implements FileEntry
    Represents a Gutenberg word processing file entry on disk.

    Date created: Dec 17, 2008 04:29:23 PM

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int FILE_DESCRIPTIVE_ENTRY_LENGTH
      Indicates the length in bytes of the DOS file entry field.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean canCompile()
      Indicates that this filetype can be compiled.
      void delete()
      Delete this file.
      int getAddress()
      Get the address that this file loads at.
      java.util.List<java.lang.String> getFileColumnData​(int displayMode)
      Get the standard file column header information.
      byte[] getFileData()
      Get file data.
      java.lang.String getFilename()
      Return the name of this file.
      java.lang.String getFiletype()
      Return the filetype of this file.
      FormattedDisk getFormattedDisk()
      Get the FormattedDisk associated with this FileEntry.
      int getMaximumFilenameLength()
      Return the maximum filename length.
      int getSector()
      Get the sector of first track/sector list sector.
      int getSectorsUsed()
      Compute the number of sectors used.
      int getSize()
      Compute the size of this file (in bytes).
      FileFilter getSuggestedFilter()
      Get the suggested FileFilter.
      int getTrack()
      Get the track of first track/sector list sector.
      boolean isAssemblySourceFile()
      Determine if this is an assembly source code file.
      boolean isDeleted()
      Identify if this file has been deleted.
      boolean isDirectory()
      Identify if this is a directory file.
      boolean isLocked()
      Identify if this file is locked.
      boolean needsAddress()
      Indicates if this filetype requires an address component.
      protected byte[] readFileEntry()
      Read the FileEntry from the disk image.
      void setAddress​(int address)
      Set the address that this file loads at.
      void setFileData​(byte[] data)
      Set the file data.
      void setFilename​(java.lang.String filename)
      Set the name of this file.
      void setFiletype​(java.lang.String filetype)
      Set the filetype (typeless - unused)
      void setLocked​(boolean lock)
      Set the lock indicator (unused)
      void setSector​(int sector)
      Set the sector of the first track/sector list sector.
      void setSectorsUsed​(int sectorsUsed)
      Set the number of sectors used.
      void setTrack​(int track)
      Set the track of the first track/sector list sector.
      protected void writeFileEntry​(byte[] fileEntry)
      Write the FileEntry to the disk image.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • FILE_DESCRIPTIVE_ENTRY_LENGTH

        public static final int FILE_DESCRIPTIVE_ENTRY_LENGTH
        Indicates the length in bytes of the DOS file entry field.
        See Also:
        Constant Field Values
    • Constructor Detail

      • GutenbergFileEntry

        public GutenbergFileEntry​(GutenbergFormatDisk disk,
                                  int track,
                                  int sector,
                                  int offset)
        Constructor for GutenbergFileEntry.
    • Method Detail

      • readFileEntry

        protected byte[] readFileEntry()
        Read the FileEntry from the disk image.
      • writeFileEntry

        protected void writeFileEntry​(byte[] fileEntry)
        Write the FileEntry to the disk image.
      • getMaximumFilenameLength

        public int getMaximumFilenameLength()
        Return the maximum filename length.
        Specified by:
        getMaximumFilenameLength in interface FileEntry
      • setFilename

        public void setFilename​(java.lang.String filename)
        Set the name of this file.
        Specified by:
        setFilename in interface FileEntry
      • setFiletype

        public void setFiletype​(java.lang.String filetype)
        Set the filetype (typeless - unused)
        Specified by:
        setFiletype in interface FileEntry
      • setLocked

        public void setLocked​(boolean lock)
        Set the lock indicator (unused)
        Specified by:
        setLocked in interface FileEntry
      • getSectorsUsed

        public int getSectorsUsed()
        Compute the number of sectors used.
      • setSectorsUsed

        public void setSectorsUsed​(int sectorsUsed)
        Set the number of sectors used.
      • delete

        public void delete()
        Delete this file.
        Specified by:
        delete in interface FileEntry
      • getFileColumnData

        public java.util.List<java.lang.String> getFileColumnData​(int displayMode)
        Get the standard file column header information. This default implementation is intended only for standard mode. displayMode is specified in FormattedDisk.
        Specified by:
        getFileColumnData in interface FileEntry
      • getTrack

        public int getTrack()
        Get the track of first track/sector list sector.
      • setTrack

        public void setTrack​(int track)
        Set the track of the first track/sector list sector.
      • getSector

        public int getSector()
        Get the sector of first track/sector list sector.
      • setSector

        public void setSector​(int sector)
        Set the sector of the first track/sector list sector.
      • getFileData

        public byte[] getFileData()
        Get file data. This handles any operating-system specific issues.
        Specified by:
        getFileData in interface FileEntry
      • setFileData

        public void setFileData​(byte[] data)
                         throws DiskFullException
        Set the file data. Note: The address can be set before the data is saved or after the data is saved. This is an attempt to make the API more easily usable. Empirically, the data must be set before the address is set.
        Specified by:
        setFileData in interface FileEntry
        Throws:
        DiskFullException
      • getSuggestedFilter

        public FileFilter getSuggestedFilter()
        Get the suggested FileFilter. This appears to be operating system specific, so each operating system needs to implement some manner of guessing the appropriate filter. FIXME - this code should be a helper class for DOS and RDOS!
        Specified by:
        getSuggestedFilter in interface FileEntry
      • isAssemblySourceFile

        public boolean isAssemblySourceFile()
        Determine if this is an assembly source code file.
      • getFormattedDisk

        public FormattedDisk getFormattedDisk()
        Get the FormattedDisk associated with this FileEntry. This is useful to interfaces that need to retrieve the associated disk.
        Specified by:
        getFormattedDisk in interface FileEntry
      • needsAddress

        public boolean needsAddress()
        Indicates if this filetype requires an address component. Note that the FormattedDisk also has this method - normally, this will defer to the method on FormattedDisk, as it will be more generic.
        Specified by:
        needsAddress in interface FileEntry
      • setAddress

        public void setAddress​(int address)
        Set the address that this file loads at.
        Specified by:
        setAddress in interface FileEntry
      • getAddress

        public int getAddress()
        Get the address that this file loads at.
        Specified by:
        getAddress in interface FileEntry
      • canCompile

        public boolean canCompile()
        Indicates that this filetype can be compiled.
        Specified by:
        canCompile in interface FileEntry