package Ġjp . cor dea . recyclerview library comparison . b ento Ċ Ċ import Ġandroidx . core . net . to Uri Ċ import Ġcom . yel p . android . b ento . core . Component Ċ import Ġjp . cor dea . recyclerview library comparison . Language Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠB ento ComponentModel ( ĊĠĠĠ Ġval Ġtitle : ĠString , ĊĠĠĠ Ġval Ġdescription : ĠString , ĊĠĠĠ Ġurl : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( language : ĠLanguage ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB ento ComponentModel ( language . name , Ġlanguage . design ers . join ToString (", Ġ"), Ġlanguage . url ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġuri Ġ= Ġurl . to Uri () Ċ } Ċ Ċ class ĠB ento Component Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġpresenter : ĠB ento Component Presenter , ĊĠĠĠ Ġprivate Ġval Ġmodel : ĠB ento ComponentModel Ċ ) Ġ: ĠComponent () Ġ{ ĊĠĠĠ Ġclass ĠFactory Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpresenter : ĠB ento Component Presenter ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( model : ĠB ento ComponentModel ) Ġ= ĠB ento Component ( presenter , Ġmodel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Presenter ( position : ĠInt ) Ġ= Ġpresenter ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ) Ġ= Ġmodel ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ= Ġ 1 ĊĊĠĠĠ Ġoverride Ġfun Ġget Holder Type ( position : ĠInt ) Ġ= ĠB ento Component ViewHolder :: class . java Ċ } Ċ