POIFileSystem +readFileSystem(InputStream in)() : POIFileSystem Block +createBlock(byte[] bytes, int offset, int length)() : Block HeaderBlock BATBlock PropertyTableBlock Property RootProperty BAT -blocks[0..*] : BATBlock +createRecord(bytes:Collection) : int +getBlocks() : Collection PropertyTable +createRecord(name:String, startBlock:int, :) DirectoryProperty FileProperty sourcePortFig="Fig3.0" destPortFig="Fig1.0" sourceFigNode="Fig3" destFigNode="Fig1" sourcePortFig="Fig4.0" destPortFig="Fig1.0" sourceFigNode="Fig4" destFigNode="Fig1" sourcePortFig="Fig2.0" destPortFig="Fig1.0" sourceFigNode="Fig2" destFigNode="Fig1" sourcePortFig="Fig7.0" destPortFig="Fig1.0" sourceFigNode="Fig7" destFigNode="Fig1" 0..* sourcePortFig="Fig4.0" destPortFig="Fig5.0" sourceFigNode="Fig4" destFigNode="Fig5" 0..* sourcePortFig="Fig9.0" destPortFig="Fig5.0" sourceFigNode="Fig9" destFigNode="Fig5" sourcePortFig="Fig6.0" destPortFig="Fig9.0" sourceFigNode="Fig6" destFigNode="Fig9" sourcePortFig="Fig10.0" destPortFig="Fig5.0" sourceFigNode="Fig10" destFigNode="Fig5" sourcePortFig="Fig9.0" destPortFig="Fig5.0" sourceFigNode="Fig9" destFigNode="Fig5" child sourcePortFig="Fig5.0" destPortFig="Fig5.0" sourceFigNode="Fig5" destFigNode="Fig5" +next 0..1 sourcePortFig="Fig5.0" destPortFig="Fig5.0" sourceFigNode="Fig5" destFigNode="Fig5" 0..1 previous