package Ġme . mo odi 1 9 9 9 . argument _ processor . operation Generator . parameter ized . collection Ċ Ċ import Ġcom . squareup . kotlin po et . Code Block Ċ import Ġcom . squareup . kotlin po et . Parameterized TypeName Ċ import Ġcom . squareup . kotlin po et . Property Spec Ċ import Ġme . mo odi 1 9 9 9 . argument _ processor . model . Argument Info Ċ import Ġme . mo odi 1 9 9 9 . argument _ processor . model . Target Field Info Ċ import Ġme . mo odi 1 9 9 9 . argument _ processor . operation Generator . BO CG Helper Ċ import Ġme . mo odi 1 9 9 9 . argument _ processor . operation Generator . generate Get Operation Ċ import Ġme . mo odi 1 9 9 9 . argument _ processor . operation Generator . generate Null Assertion If Nullable Ċ import Ġme . mo odi 1 9 9 9 . argument _ processor . operation Generator . generate Put Operation Ċ import Ġjavax . lang . model . element . Type Element ĊĊ Ċ class ĠCollection Parameterized Arg Type BO CG Ġ: ĠCollection Type BO CG () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġarg ue mnt Type Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġarg Type . type Arguments . first () Ġas ĠParameter ized TypeName ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġargument Element : ĠType Element ? Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġelement Utils . getType Element ( arg ue mnt Type . raw Type . canonical Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis Applicable : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġsuper . is Applicable Ġ&& Ġarg Type . type Arguments . first () Ġis ĠParameter ized TypeName ĊĊĠĠĠ Ġprivate Ġval Ġvalue Argument Info Ġby Ġlazy Ġ{ ĊĊĠĠĠĠĠĠĠ ĠArgument Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTarget Field Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" l Value ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargument Element , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Spec . builder (" l Value ", Ġarg ue mnt Type ). build (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ key Ġ= Ġ" value _ key _${ hashCode () }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Required Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Put Operation Code () Ġ= ĠCode Block . Builder (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġadd ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Bundle (% N , ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% N % L . on Each Indexed Ġ{ Ġindex , Ġ% L Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ% N Ġ= Ġ% P ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Property , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarg Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarg Type . generate Null Assertion If Nullable (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Argument Info . name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB OC G Helper . get Generate Key Property ( value Argument Info . key , Ġis Const Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" value " Ġ+ Ġ"$ " Ġ+ Ġ" index ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB OC G Helper . get Bundle Operation Generators Sequence ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Argument Info , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessing Env , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). generate Put Operation (), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ}. build () ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Get Operation Code (): ĠCode Block Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout List Var Name Ġ= Ġ" out List ${ hashCode () }" ĊĠĠĠĠĠĠĠ Ġval Ġindex Var Name Ġ= Ġ" index ${ hashCode () }" ĊĠĠĠĠĠĠĠ Ġreturn ĠCode Block . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Bundle (% N )?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ% L Ġ= Ġmutable ListOf <% T >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(% L Ġin Ġ 0 .. size ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ% N Ġ= Ġ% P ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% L . add (% L % L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% L ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Property , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout List Var Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarg ue mnt Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Var Name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB OC G Helper . get Generate Key Property ( value Argument Info . key , Ġis Const Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" value $$ index Var Name ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout List Var Name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB OC G Helper . get Bundle Operation Generators Sequence ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Argument Info , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessing Env , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). generate Get Operation (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( arg ue mnt Type . is Nullable ) Ġ"" Ġelse Ġ" !! ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout List Var Name , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ