package Ġnet . ruby gr ape fruit . gen . builders Ċ Ċ import Ġnet . ruby gr ape fruit . gen . specs . Build Component Production Spec Ċ Ċ abstract Ġclass ĠZero Or More Build Components Builder < T Ġ: ĠBuild Component Production Spec > Ġ: ĠBuild Components Builder < T >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcount Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġval Ġcurrent Size : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcount ĊĊĠĠĠ Ġfun Ġadd ( extra : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Can Mutate () ĊĠĠĠĠĠĠĠ Ġcount Ġ+= Ġextra ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Components ( ĊĠĠĠĠĠĠĠ Ġplugins : ĠPlugins Spec , ĊĠĠĠĠĠĠĠ Ġexternal Libraries : ĠExternal Libraries Spec , ĊĠĠĠĠĠĠĠ Ġinternal Libraries : ĠInternal Libraries Spec , ĊĠĠĠĠĠĠĠ Ġincoming Libraries : ĠIncoming Libraries Spec ĊĠĠĠ Ġ): ĠList < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcreate Components ( count , Ġplugins , Ġexternal Libraries , Ġinternal Libraries , Ġincoming Libraries ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġcreate Components ( ĊĠĠĠĠĠĠĠ Ġcount : ĠInt , ĊĠĠĠĠĠĠĠ Ġplugins : ĠPlugins Spec , ĊĠĠĠĠĠĠĠ Ġexternal Libraries : ĠExternal Libraries Spec , ĊĠĠĠĠĠĠĠ Ġinternal Libraries : ĠInternal Libraries Spec , ĊĠĠĠĠĠĠĠ Ġincoming Libraries : ĠIncoming Libraries Spec ĊĠĠĠ Ġ): ĠList < T > Ċ }