enclosingFig="Fig0" : ClientApps enclosingFig="Fig1" : POIFileSystem InputStream : Object enclosingFig="Fig3" : HeaderBlock enclosingFig="Fig4" : Block enclosingFig="Fig5" : BATBlock : PropertyTableBlock enclosingFig="Fig7" : BAT : PropertyTable : create the filesystem : read all bytes : create a header block from first 512 bytes : create blocks from all blocks that are not header,bat or property blocks : create bat blocks from bytes that are in bat : create property table blocks from bytes starting at header.rootstartblock : assign BAT Blocks to the BAT : derive property instances from the Property Table Blocks and add them to the property table sourcePortFig="Fig0.7" destPortFig="Fig1.7" sourceFigNode="Fig0" destFigNode="Fig1" sourcePortFig="Fig1.8" destPortFig="Fig2.7" sourceFigNode="Fig1" destFigNode="Fig2" sourcePortFig="Fig1.9" destPortFig="Fig3.7" sourceFigNode="Fig1" destFigNode="Fig3" sourcePortFig="Fig1.10" destPortFig="Fig4.7" sourceFigNode="Fig1" destFigNode="Fig4" sourcePortFig="Fig1.11" destPortFig="Fig5.7" sourceFigNode="Fig1" destFigNode="Fig5" sourcePortFig="Fig1.12" destPortFig="Fig6.7" sourceFigNode="Fig1" destFigNode="Fig6" sourcePortFig="Fig1.13" destPortFig="Fig7.7" sourceFigNode="Fig1" destFigNode="Fig7" sourcePortFig="Fig1.14" destPortFig="Fig8.7" sourceFigNode="Fig1" destFigNode="Fig8"