2015-06-01 09:35:51 +00:00
|
|
|
package com.bytezone.diskbrowser.disk;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import com.bytezone.diskbrowser.applefile.AbstractFile;
|
|
|
|
|
|
|
|
public class SectorList extends AbstractFile
|
|
|
|
{
|
|
|
|
List<DiskAddress> sectors;
|
|
|
|
FormattedDisk formattedDisk;
|
|
|
|
|
|
|
|
public SectorList (FormattedDisk formattedDisk, List<DiskAddress> sectors)
|
|
|
|
{
|
|
|
|
super ("noname", null);
|
|
|
|
|
|
|
|
this.sectors = sectors;
|
|
|
|
this.formattedDisk = formattedDisk;
|
|
|
|
|
|
|
|
Disk disk = formattedDisk.getDisk ();
|
|
|
|
int ptr = 0;
|
|
|
|
buffer = new byte[sectors.size () * disk.getBlockSize ()];
|
|
|
|
|
|
|
|
for (DiskAddress da : sectors)
|
|
|
|
{
|
2018-07-23 04:44:16 +00:00
|
|
|
if (!disk.isValidAddress (da))
|
|
|
|
break;
|
2015-06-01 09:35:51 +00:00
|
|
|
byte[] tempBuffer = disk.readSector (da);
|
|
|
|
System.arraycopy (tempBuffer, 0, buffer, ptr, disk.getBlockSize ());
|
|
|
|
ptr += disk.getBlockSize ();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getText ()
|
|
|
|
{
|
|
|
|
StringBuilder text = new StringBuilder ("Block Sector Type Owner\n");
|
2018-06-13 10:52:45 +00:00
|
|
|
text.append (
|
|
|
|
"----- ------------------ ---------------------------------------------\n");
|
2015-06-01 09:35:51 +00:00
|
|
|
|
|
|
|
for (DiskAddress da : sectors)
|
|
|
|
{
|
|
|
|
SectorType sectorType = formattedDisk.getSectorType (da);
|
|
|
|
String owner = formattedDisk.getSectorFilename (da);
|
|
|
|
if (owner == null)
|
|
|
|
owner = "";
|
2018-06-13 10:52:45 +00:00
|
|
|
text.append (
|
|
|
|
String.format (" %04X %-18s %s%n", da.getBlock (), sectorType.name, owner));
|
2015-06-01 09:35:51 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return text.toString ();
|
|
|
|
}
|
2016-07-19 01:24:36 +00:00
|
|
|
}
|