package Ġdev . kom u . ah wen . record Ċ Ċ import Ġdev . kom u . ah wen . buffer . Page Formatter Ċ import Ġdev . kom u . ah wen . file . Page Ċ import Ġdev . kom u . ah wen . file . Page . Companion . BLOCK _ SIZE Ċ import Ġdev . kom u . ah wen . file . set Ċ Ċ /** Ċ Ġ* Ġ[ Page Formatter ] Ġthat Ġinitializes Ġthe Ġpage Ġwith Ġempty Ġrecords Ġof Ġtype Ġ[ ti ]. Ċ Ġ*/ Ċ class ĠRecord Formatter ( private Ġval Ġti : ĠTable Info ) Ġ: ĠPage Formatter Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġformat ( page : ĠPage ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrec Size Ġ= Ġti . record Length Ġ+ ĠInt . SIZE _ BYTES ĊĊĠĠĠĠĠĠĠ Ġvar Ġpos Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( pos Ġ+ Ġrec Size Ġ<= ĠBLOCK _ SIZE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage [ pos ] Ġ= ĠRecord Page . EMPTY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmake Default Record ( page , Ġpos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpos Ġ+= Ġrec Size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmake Default Record ( page : ĠPage , Ġpos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( column Ġin Ġti . schema . columns ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= Ġti . offset ( column ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġpos Ġ+ ĠInt . SIZE _ BYTES Ġ+ Ġoffset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġti . schema . type ( column ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage [ position ] Ġ= Ġtype . defaultValue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ