dmolony-DiskBrowser/src/com/bytezone/diskbrowser/prodos/SubDirectoryHeader.java

79 lines
2.7 KiB
Java
Raw Normal View History

2020-02-09 13:13:33 +00:00
package com.bytezone.diskbrowser.prodos;
import java.util.List;
import com.bytezone.diskbrowser.disk.DiskAddress;
import com.bytezone.diskbrowser.gui.DataSource;
2021-04-27 11:26:09 +00:00
import com.bytezone.diskbrowser.utilities.Utility;;
2020-02-09 13:13:33 +00:00
// -----------------------------------------------------------------------------------//
2021-04-27 11:26:09 +00:00
public class SubDirectoryHeader extends DirectoryHeader
2020-02-09 13:13:33 +00:00
// -----------------------------------------------------------------------------------//
{
private final int parentPointer;
private final int parentSequence;
private final int parentSize;
2021-04-27 11:26:09 +00:00
private final int blockNo;
2020-02-09 13:13:33 +00:00
// ---------------------------------------------------------------------------------//
2021-04-27 11:26:09 +00:00
SubDirectoryHeader (ProdosDisk parentDisk, byte[] entryBuffer, FileEntry parent,
int blockNo)
2020-02-09 13:13:33 +00:00
// ---------------------------------------------------------------------------------//
{
2021-04-27 11:26:09 +00:00
super (parentDisk, entryBuffer, blockNo, 1);
2020-02-09 13:13:33 +00:00
this.parentDirectory = parent.parentDirectory;
2021-04-27 11:26:09 +00:00
this.blockNo = blockNo;
2020-02-09 13:13:33 +00:00
parentPointer = Utility.getShort (entryBuffer, 35);
2020-02-09 13:13:33 +00:00
parentSequence = entryBuffer[37] & 0xFF;
parentSize = entryBuffer[38] & 0xFF;
if (false)
System.out.printf ("", parentPointer, parentSequence, parentSize);
}
// ---------------------------------------------------------------------------------//
@Override
public DataSource getDataSource ()
// ---------------------------------------------------------------------------------//
{
// should this return a directory listing?
return null;
}
// ---------------------------------------------------------------------------------//
@Override
public List<DiskAddress> getSectors ()
// ---------------------------------------------------------------------------------//
{
return null;
}
2021-04-27 11:26:09 +00:00
// ---------------------------------------------------------------------------------//
public int getBlockNo ()
// ---------------------------------------------------------------------------------//
{
return blockNo;
}
// ---------------------------------------------------------------------------------//
@Override
public String getText ()
// ---------------------------------------------------------------------------------//
{
return String.format ("%s %04X:%02X", super.getText (), parentPointer,
parentSequence);
}
2020-02-09 13:13:33 +00:00
// ---------------------------------------------------------------------------------//
@Override
public String toString ()
// ---------------------------------------------------------------------------------//
{
String locked = (access == 0x01) ? "*" : " ";
return String.format (" %s%-40s %15s", locked, "/" + name,
2021-04-17 07:33:27 +00:00
created.format (ProdosDisk.df));
2020-02-09 13:13:33 +00:00
}
2015-06-01 09:35:51 +00:00
}