package Ġpl . dr ac iel . fad Ċ Ċ import Ġandroidx . fragment . app . Fragment Ċ Ċ class ĠPosition Fragment Delegate Manager < F , ĠD > Ġprivate Ġconstructor ( private Ġval Ġlist : ĠList < D >) Ġ: ĊĠĠĠ ĠFragment Delegate Manager < Int , ĠF , ĠD > Ġwhere ĠF Ġ: ĠFragment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD Ġ: ĠPosition Fragment Delegate < F > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdelegate By Item ( item : ĠInt ): ĠD Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist [ item ] Ġ?: Ġthrow ĠIllegalArgumentException (" Delegate Ġnot Ġregistered Ġfor Ġposition Ġ${ item }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsize (): ĠInt Ġ= Ġlist . size ĊĊĠĠĠ Ġclass ĠBuilder < F Ġ: ĠFragment , ĠD Ġ: ĠPosition Fragment Delegate < F >>( size : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlist : ĠMutable List < D > Ġ= Ġif Ġ( size Ġ== Ġnull ) ĠArrayList () Ġelse ĠArrayList ( size ) ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġis Built : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġfun Ġregister ( delegate : ĠPosition Fragment Delegate < F >): ĠBuilder < F , ĠD > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Built ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( delegate Ġas ĠD ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠPosition Fragment Delegate Manager < F , ĠD > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Built Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPosition Fragment Delegate Manager ( list ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ