Class DosFileEntry
- java.lang.Object
-
- com.webcodepro.applecommander.storage.os.dos33.DosFileEntry
-
-
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.
-
Constructor Summary
Constructors Constructor Description DosFileEntry(DosFormatDisk disk, int track, int sector, int offset)
Constructor for DosFileEntry.
-
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
isApplesoftBasicFile()
Determine if this is an Applesoft BASIC file.boolean
isAssemblySourceFile()
Determine if this is an assembly source code file.boolean
isBinaryFile()
Determine if this is a binary file.boolean
isDeleted()
Identify if this file has been deleted.boolean
isDirectory()
Identify if this is a directory file.boolean
isIntegerBasicFile()
Determine if this is an Integer BASIC file.boolean
isLocked()
Identify if this file is locked.boolean
isTextFile()
Determine if this is a text file.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.void
setLocked(boolean lock)
Set the lock indicator.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.
-
-
-
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
-
DosFileEntry
public DosFileEntry(DosFormatDisk disk, int track, int sector, int offset)
Constructor for DosFileEntry.
-
-
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 interfaceFileEntry
-
getFilename
public java.lang.String getFilename()
Return the name of this file.- Specified by:
getFilename
in interfaceFileEntry
- See Also:
FileEntry.getFilename()
-
setFilename
public void setFilename(java.lang.String filename)
Set the name of this file.- Specified by:
setFilename
in interfaceFileEntry
-
getFiletype
public java.lang.String getFiletype()
Return the filetype of this file.- Specified by:
getFiletype
in interfaceFileEntry
- See Also:
FileEntry.getFiletype()
-
setFiletype
public void setFiletype(java.lang.String filetype)
Set the filetype. This contains some ProDOS file type translation to support translation from an AppleSingle archive.- Specified by:
setFiletype
in interfaceFileEntry
-
isLocked
public boolean isLocked()
Identify if this file is locked.- Specified by:
isLocked
in interfaceFileEntry
- See Also:
FileEntry.isLocked()
-
setLocked
public void setLocked(boolean lock)
Set the lock indicator.
-
getSize
public int getSize()
Compute the size of this file (in bytes).- Specified by:
getSize
in interfaceFileEntry
- See Also:
FileEntry.getSize()
-
getSectorsUsed
public int getSectorsUsed()
Compute the number of sectors used.
-
setSectorsUsed
public void setSectorsUsed(int sectorsUsed)
Set the number of sectors used.
-
isDirectory
public boolean isDirectory()
Identify if this is a directory file.- Specified by:
isDirectory
in interfaceFileEntry
- See Also:
FileEntry.isDirectory()
-
isDeleted
public boolean isDeleted()
Identify if this file has been deleted.- Specified by:
isDeleted
in interfaceFileEntry
- See Also:
FileEntry.isDeleted()
-
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 interfaceFileEntry
-
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. Specifically, DOS 3.3 places address and length into binary files and length into Applesoft files.- Specified by:
getFileData
in interfaceFileEntry
-
setFileData
public void setFileData(byte[] data) throws DiskFullException
Set the file data. This is essentially the save operation. Specifically, if the filetype is binary, the length and address need to be set. If the filetype is applesoft or integer basic, the start address needs to be set. 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 interfaceFileEntry
- 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 interfaceFileEntry
-
isAssemblySourceFile
public boolean isAssemblySourceFile()
Determine if this is an assembly source code file.
-
isTextFile
public boolean isTextFile()
Determine if this is a text file.
-
isApplesoftBasicFile
public boolean isApplesoftBasicFile()
Determine if this is an Applesoft BASIC file.
-
isIntegerBasicFile
public boolean isIntegerBasicFile()
Determine if this is an Integer BASIC file.
-
isBinaryFile
public boolean isBinaryFile()
Determine if this is a binary 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 interfaceFileEntry
-
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 interfaceFileEntry
-
setAddress
public void setAddress(int address)
Set the address that this file loads at.- Specified by:
setAddress
in interfaceFileEntry
-
getAddress
public int getAddress()
Get the address that this file loads at.- Specified by:
getAddress
in interfaceFileEntry
-
canCompile
public boolean canCompile()
Indicates that this filetype can be compiled.- Specified by:
canCompile
in interfaceFileEntry
-
-