package Ġcom . kr ake . core . component . base Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ Ċ /** Ċ Ġ* ĠCl asse Ġper Ġgener are Ġun Ġnu ovo Ġcomponent e Ġche Ġcont err Ãł Ġun Ġ[ Bundle ] Ġcon Ġi Ġvari Ġ[ Component Module ] Ġserial izz ati . Ċ Ġ* Ġ@ param ĠBuilder Ġbuilder Ġche Ġest ende Ġil Ġ[ Component Builder ] Ġper Ġa vere Ġil Ġtipo Ġdi Ġr itor no Ġdei Ġmet odi Ġbase Ċ Ġ* Ġautomatic amente Ġcast ato Ġal Ġtipo Ġdella Ġs otto cl asse . Ċ Ġ* Ġ@ param ĠModel Ġtipo Ġdi Ġr itor no Ġdel Ġmet odo Ġ[ build ]. Ċ Ġ*/ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ abstract Ġclass ĠComponent Builder < Builder Ġ: ĠComponent Builder < Builder , ĠModel >, ĠModel > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġbundle : ĠBundle Ġ= ĠBundle () ĊĠĠĠ Ġprotected Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpec ifica Ġil Ġ[ Context ] Ġutilizz ato Ġper Ġcre are Ġil Ġ[ Bundle ]. ĊĠĠĠĠ Ġ* ĠIl Ġ[ Context ] ĠÃ¨ Ġnecess ario , Ġqu indi , Ġnel Ġcaso Ġin Ġcui Ġil Ġ[ Context ] Ġnon Ġveng a Ġset t ato , Ġv err Ãł Ġl anci ata Ġuna Ġ[ IllegalArgumentException ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġist anza Ġdi Ġ[ Builder ] Ġcre ata Ġin Ġpreced enza . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfrom ( context : ĠContext ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠBuilder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAg gi unge Ġal Ġ[ Bundle ] Ġtut ti Ġi Ġ[ Component Module ] Ġserial izz ati . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmodules Ġvar arg Ġdi Ġmod uli Ġche Ġv err anno Ġserial izz ati ĊĠĠĠĠ Ġ* Ġ@ return Ġist anza Ġdi Ġ[ Builder ] Ġcre ata Ġin Ġpreced enza . ĊĠĠĠĠ Ġ* Ġ@ see ĠComponent Manager . create Bundle With Modules ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwith ( var arg Ġmodules : ĠComponent Module ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġbundle . put All ( Component Manager . create Bundle With Modules ( context !! , Ġ* modules )) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠBuilder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAg gi unge Ġal Ġ[ Bundle ] Ġun Ġalt ro Ġ[ Bundle ] Ġcop i ando Ġtut ti Ġgli Ġarguments Ġdel Ġsecond o Ġall ' intern o Ġdel Ġpri mo . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġbundle Ġ[ Bundle ] Ġda Ġcop i are Ġnel Ġ[ Bundle ] Ġprincip ale ĊĠĠĠĠ Ġ* Ġ@ return Ġist anza Ġdi Ġ[ Builder ] Ġcre ata Ġin Ġpreced enza . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġput ( bundle : ĠBundle ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( bundle Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . bundle . put All ( bundle ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠBuilder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPer met te Ġmodific he Ġaggi unt ive Ġal Ġ[ Bundle ] Ġutilizz ato Ġcorre nt ement e Ġdal Ġ[ Component Builder ]. ĊĠĠĠĠ Ġ* ĠSul Ġ[ Bundle ] Ġsi ĠpuÃ² Ġeff et tu are Ġqual s ias i Ġmod ifica , Ġcome Ġaggi ung ere Ġo Ġri mu over e Ġarguments Ġo Ġset t are Ġun Ġcustom Ġ[ ClassLoader ]. ĊĠĠĠĠ Ġ* ĠL ' aggi unta Ġdeg li Ġextra Ġcon Ġil Ġmet odo Ġ[ transform ] ĠÃ¨ Ġs con sig li ata Ġper ch Ã© ĠpuÃ² Ġso vr as cri vere Ġdei Ġcomport ament i Ġdi Ġdefault Ġche Ġsono Ġr iten uti Ġnecess ari . ĊĠĠĠĠ Ġ* ĠUtil izz are Ġin ve ce Ġil Ġmet odo Ġ[ put ] Ġopp ure Ġcre are Ġun Ġ[ Component Module ] Ġcustom . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġbundle Closure Ġclosure Ġche Ġpermet te Ġle Ġmodific he Ġsul Ġ[ Bundle ] Ġprincip ale Ġpass ato Ġcome Ġparame tro . ĊĠĠĠĠ Ġ* Ġ@ return Ġist anza Ġdi Ġ[ Builder ] Ġcre ata Ġin Ġpreced enza . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtransform ( bundle Closure : Ġ( Bundle ) Ġ-> ĠUnit ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġbundle Closure . invoke ( bundle ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠBuilder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠVer ifica Ġle Ġcond iz ioni Ġnecess ar ie Ġpri ma Ġche Ġveng a Ġrich iam ato Ġil Ġmet odo Ġ[ build ]. ĊĠĠĠĠ Ġ* ĠPer met te Ġdi Ġl anci are Ġdelle Ġec ce zioni Ġnel Ġcaso Ġin Ġcui Ġal c uni Ġcamp i Ġnecess ari Ġs iano Ġm anc anti . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġvalidate Properties () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" You Ġmust Ġspecify Ġa ĠContext .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠD op o Ġaver Ġvalid ato Ġle Ġpropriet Ãł Ġdel Ġmodulo , Ġcre a Ġil Ġcomponent e Ġdi Ġtipo Ġ[ Model ] ĊĠĠĠĠ Ġ* Ġutilizz ando Ġil Ġ[ Bundle ] Ġgener ato Ġcon Ġi Ġmet odi Ġdel Ġ[ Component Builder ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġbuild (): ĠModel Ġ{ ĊĠĠĠĠĠĠĠ Ġvalidate Properties () ĊĠĠĠĠĠĠĠ Ġreturn Ġbuild With Bundle ( bundle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGest is ce Ġla Ġcre azione Ġdel Ġcomponent e Ġdi Ġtipo Ġ[ Model ] Ġutilizz ando Ġil Ġ[ Bundle ] Ġgener ato Ġcon Ġi Ġmet odi Ġdel Ġ[ Component Builder ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġbuild With Bundle ( bundle : ĠBundle ): ĠModel Ċ } Ċ Ċ /** Ċ Ġ* ĠCl asse Ġper Ġgener are Ġun Ġnu ovo Ġ[ Bundle ] Ġche Ġcont err Ãł Ġun Ġ[ Bundle ] Ġcon Ġi Ġvari Ġ[ Component Module ] Ġserial izz ati . Ċ Ġ*/ Ċ class ĠBundle Builder Ġinternal Ġconstructor () Ġ: ĠComponent Builder < Bundle Builder , ĠBundle >() Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGest is ce Ġla Ġcre azione Ġdel Ġ[ Bundle ] Ġutilizz ando Ġil Ġ[ Bundle ] Ġgener ato Ġcon Ġi Ġmet odi Ġdel Ġ[ Component Builder ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġbuild With Bundle ( bundle : ĠBundle ): ĠBundle Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbundle ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠCl asse Ġper Ġgener are Ġun Ġnu ovo Ġ[ Intent ] Ġche Ġcont err Ãł Ġun Ġ[ Bundle ] Ġcon Ġi Ġvari Ġ[ Component Module ] Ġserial izz ati . Ċ Ġ*/ Ċ class ĠIntent Builder Ġinternal Ġconstructor () Ġ: ĠComponent Builder < Intent Builder , ĠIntent >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġdestination : ĠClass < out ĠActivity >? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpec ifica Ġla Ġclasse Ġdell '[ Activity ] Ġdi Ġdest in azione . ĊĠĠĠĠ Ġ* ĠLa Ġclasse Ġdell '[ Activity ] Ġdi Ġdest in azione ĠÃ¨ Ġnecess aria , Ġqu indi , Ġnel Ġcaso Ġin Ġcui Ġla Ġclasse Ġnon Ġveng a Ġset t ata , Ġv err Ãł Ġl anci ata Ġuna Ġ[ IllegalArgumentException ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġist anza Ġdi Ġ[ Intent Builder ] Ġcre ata Ġin Ġpreced enza . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġto ( destination : ĠClass < out ĠActivity >): ĠIntent Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . destination Ġ= Ġdestination ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠVer ifica Ġle Ġcond iz ioni Ġnecess ar ie Ġpri ma Ġche Ġveng a Ġrich iam ato Ġil Ġmet odo Ġ[ build ]. ĊĠĠĠĠ Ġ* ĠPer met te Ġdi Ġl anci are Ġdelle Ġec ce zioni Ġnel Ġcaso Ġin Ġcui Ġal c uni Ġcamp i Ġnecess ari Ġs iano Ġm anc anti . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġvalidate Properties () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . validate Properties () ĊĠĠĠĠĠĠĠ Ġif Ġ( destination Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" You Ġmust Ġspecify Ġan ĠActivity Ġas Ġdestination .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGest is ce Ġla Ġcre azione Ġdell '[ Intent ] Ġutilizz ando Ġil Ġ[ Bundle ] Ġgener ato Ġcon Ġi Ġmet odi Ġdel Ġ[ Component Builder ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġbuild With Bundle ( bundle : ĠBundle ): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , Ġdestination ) ĊĠĠĠĠĠĠĠ Ġ/* ĠG li Ġextras Ġdel ĠBundle Ġveng ono Ġcop i ati Ġall ' intern o Ġdell ' Intent Ġ*/ ĊĠĠĠĠĠĠĠ Ġintent . put Extras ( bundle ) ĊĠĠĠĠĠĠĠ Ġreturn Ġintent ĊĠĠĠ Ġ} Ċ }