package Ġcom . tang . h wp lib . builder . doc info Ċ Ċ import Ġcom . tang . h wp lib . builder . interfaces . HW P Builder Ċ import Ġcom . tang . h wp lib . builder . doc info . tab def . HW PT ab Def Property Builder Ċ import Ġcom . tang . h wp lib . builder . doc info . tab def . HW PT ab Info Builder Ċ import Ġcom . tang . h wp lib . copy to . doc info . ID Mapping Types Ċ import Ġcom . tang . h wp lib . objects . doc info . HW P Doc Info Ċ import Ġcom . tang . h wp lib . objects . doc info . HW PT ab Def Ċ import Ġcom . tang . h wp lib . objects . doc info . tab def . HW PT ab Def Property Ċ Ċ class ĠHW PT ab Def Builder ( private Ġval Ġdoc Info : ĠH WP Doc Info ) Ġ: ĠH WP Doc Info Builder () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtab Def : ĠHW PT ab Def Ġ= ĠHW PT ab Def . build () ĊĊĠĠĠ Ġfun Ġset Property ( property Builder : ĠHW PT ab Def Property Builder ) Ġ: ĠHW PT ab Def Builder Ġ= Ġthis . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġtab Def . property Ġ= Ġproperty Builder . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Tab Info ( tab Info Builder : ĠHW PT ab Info Builder ) Ġ: ĠHW PT ab Def Builder Ġ= Ġthis . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġtab Def . tab InfoList . add ( tab Info Builder . build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġproceed () Ġ: ĠInt Ġ= Ġbuild (). run Ġ{ ĊĠĠĠĠĠĠĠ Ġdoc Info . tab Def List . size Ġ- Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbuild (): ĠHW PT ab Def Ġ= Ġtab Def . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġdoc Info . tab Def List . add ( this ) ĊĠĠĠĠĠĠĠ Ġdoc Info . update ID Mappings ( ID Mapping Types . TAB DEF ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠHW PT ab Def List Builder Ġ: ĠH WP Builder < ArrayList < HW PT ab Def >> Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtab Def List Ġ: ĠArrayList < HW PT ab Def > Ġ= ĠArrayList () ĊĊĠĠĠ Ġfun Ġadd Tab Def ( tab Def Builder : ĠHW PT ab Def Builder ) Ġ: ĠHW PT ab Def List Builder Ġ= Ġthis . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġtab Def List . add ( tab Def Builder . build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbuild (): ĠArrayList < HW PT ab Def > Ġ= Ġtab Def List Ċ }