// SectorList.java public class SectorList extends List { private int freeSectors; // number of sectors free on disk // constructor creates empty list with name public SectorList() { this( 0 ); } // end constructor // constructor public SectorList( int num ) { super( "Sector List" ); } // end constructor // set freeSectors public void setFreeSectors( int num ) { freeSectors = num >= 0 ? num : 0; } // end method // get freeSectors public int getFreeSectors() { return freeSectors; } // end method getFreeSectors // get free space how many sectors available public int getFreeSpace() { ListNode current; Sector sec; int sectorsFree = 0; current = getFirstNode(); // loop thru entire list and count all the free sectors while( current != null ) { sec = ( Sector ) current.getObject(); if( sec.getFree() ) // sector is free sectorsFree++; current = current.getNext(); } // end while return sectorsFree; } // end method getFreeSpace // print available sectors public String sectorsAvailable() { ListNode current; Sector sec; int size = getFreeSpace(); String string = ""; current = getFirstNode(); // loop thru entire list and count all the free sectors while( current != null ) { sec = ( Sector ) current.getObject(); if( sec.getFree() ) { size--; if ( size == 0 ) // last sector to print needs no comma string += sec.toString(); else string += sec.toString() + ", "; } // end if current = current.getNext(); } // end while return string; } // end method sectorsAvailable } // end class List