
public class TreeIndexHeader extends DefaultPageHeader
| Modifier and Type | Field and Description | 
|---|---|
| (package private) int | dirCapacityThe capacity of a directory node (= 1 + maximum number of entries in a
 directory node). | 
| (package private) int | dirMinimumThe minimum number of entries in a directory node. | 
| private int | emptyPagesSizeThe number of bytes additionally needed for the listing of empty pages of
 the headed page file. | 
| private int | largestPageIDThe largest ID used so far | 
| (package private) int | leafCapacityThe capacity of a leaf node (= 1 + maximum number of entries in a leaf
 node). | 
| (package private) int | leafMinimumThe minimum number of entries in a leaf node. | 
| private static int | SIZEThe size of this header in Bytes, which is 20 Bytes ( 4 Bytes for
  dirCapacity,leafCapacity,dirMinimum,leafMinimum, andemptyPagesSize). | 
| Constructor and Description | 
|---|
| TreeIndexHeader()Empty constructor for serialization. | 
| TreeIndexHeader(int pageSize,
               int dirCapacity,
               int leafCapacity,
               int dirMinimum,
               int leafMinimum)Creates a new header with the specified parameters. | 
| Modifier and Type | Method and Description | 
|---|---|
| int | getDirCapacity()Returns the capacity of a directory node (= 1 + maximum number of entries
 in a directory node). | 
| int | getDirMinimum()Returns the minimum number of entries in a directory node. | 
| int | getEmptyPagesSize() | 
| int | getLargestPageID() | 
| int | getLeafCapacity()Returns the capacity of a leaf node (= 1 + maximum number of entries in a
 leaf node). | 
| int | getLeafMinimum()Returns the minimum number of entries in a leaf node. | 
| Stack<Integer> | readEmptyPages(RandomAccessFile file)Read the empty pages from the end of  file. | 
| void | readHeader(RandomAccessFile file)Initializes this header from the specified file. | 
| void | setEmptyPagesSize(int emptyPagesSize)Set the size required by the listing of empty pages. | 
| void | setLargestPageID(int largestPageID) | 
| int | size()Returns  DefaultPageHeader.size()plus the value ofSIZE). | 
| void | writeEmptyPages(Stack<Integer> emptyPages,
               RandomAccessFile file)Write the indices of empty pages the the end of  file. | 
| void | writeHeader(RandomAccessFile file)Writes this header to the specified file. | 
asByteArray, getPageSize, getReservedPages, readHeaderprivate static int SIZE
dirCapacity, leafCapacity, dirMinimum,
 leafMinimum, and emptyPagesSize).int dirCapacity
int leafCapacity
int dirMinimum
int leafMinimum
private int emptyPagesSize
private int largestPageID
public TreeIndexHeader()
public TreeIndexHeader(int pageSize,
               int dirCapacity,
               int leafCapacity,
               int dirMinimum,
               int leafMinimum)
pageSize - the size of a page in bytesdirCapacity - the maximum number of entries in a directory nodeleafCapacity - the maximum number of entries in a leaf nodedirMinimum - the minimum number of entries in a directory nodeleafMinimum - the minimum number of entries in a leaf nodepublic void readHeader(RandomAccessFile file) throws IOException
DefaultPageHeader#readHeader(file) and reads the integer values of
 dirCapacity, leafCapacity, dirMinimum,
 leafMinimum and emptyPagesSize from the file.readHeader in interface PageHeaderreadHeader in class DefaultPageHeaderfile - the file to which this header belongsIOException - if an I/O-error occurs during readingpublic void writeHeader(RandomAccessFile file) throws IOException
dirCapacity, leafCapacity, dirMinimum,
 leafMinimum and emptyPagesSize to the file.writeHeader in interface PageHeaderwriteHeader in class DefaultPageHeaderfile - the file to which this header belongsIOException - IOException if an I/O-error occurs during writingpublic int getDirCapacity()
public int getLeafCapacity()
public int getDirMinimum()
public int getLeafMinimum()
public int getEmptyPagesSize()
public void setEmptyPagesSize(int emptyPagesSize)
emptyPagesSize - the number of bytes needed for this listing of empty
        pagespublic int getLargestPageID()
public void setLargestPageID(int largestPageID)
public int size()
DefaultPageHeader.size()
 plus the value of SIZE). Note, this is only the base size and
 probably not the overall size of this header, as there may be
 empty pages to be maintained.size in interface PageHeadersize in class DefaultPageHeaderpublic void writeEmptyPages(Stack<Integer> emptyPages, RandomAccessFile file) throws IOException
file. Calling
 this method should be followed by a writeHeader(RandomAccessFile).emptyPages - the stack of empty page ids which remain to be filledfile - File to work withIOException - thrown on IO errorspublic Stack<Integer> readEmptyPages(RandomAccessFile file) throws IOException, ClassNotFoundException
file.file - File to work withfileIOException - thrown on IO errorsClassNotFoundException - if the stack of empty pages could not be
         correctly read from file