package Ġcom . hi . d hl . paging 3 . data . repository Ċ Ċ import Ġandroidx . paging . Pager Ċ import Ġandroidx . paging . Paging Config Ċ import Ġandroidx . paging . Paging Data Ċ import Ġcom . hi . d hl . paging 3 . bean . Person Ċ import Ġcom . hi . d hl . paging 3 . data . local . AppData Base Ċ import Ġcom . hi . d hl . paging 3 . data . local . Person Entity Ċ import Ġcom . hi . d hl . paging 3 . data . mapper . Mapper Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . map Ċ Ċ /** Ċ Ġ* Ġ< pre > Ċ Ġ* ĠĠĠĠ Ġauthor : Ġd hl Ċ Ġ* ĠĠĠĠ Ġdate Ġ Ġ: Ġ 2 0 2 0 / 6 / 1 6 Ċ Ġ* ĠĠĠĠ Ġdesc Ġ Ġ: Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ 1 . ĠRepository Ġæī§è¡Į æł¸å¿ĥ ä¸ļåĬ¡ éĢ»è¾ĳ å¤ĦçĲĨ ï¼Ī ç½ĳç»ľ ãĢģ ç¼ĵåŃĺ ãĢģ æķ°æį®åºĵ ï¼ī Ċ Ġ* ĠĠĠĠĠ 2 . Ġå½ĵ ĠMapping Ġ æĺłå°Ħ ç±» æ¯Ķè¾ĥ å¤ļ çļĦæĹ¶åĢĻ ï¼Į åı¯ä»¥ä½¿çĶ¨ è£ħ é¥ ° èĢħ æ¨¡å¼ı è¿Ľè¡Į å°ģè£ħ ï¼Į Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġclass ĠData Map pers Facade ( Ċ Ġ* ĠĠĠĠĠĠĠĠĠ Ġval Ġmapper 2 Person Entity : ĠMapper < Person , ĠPerson Entity >, Ċ Ġ* ĠĠĠĠĠĠĠĠĠ Ġval Ġmapper 2 Person : ĠMapper < Person Entity , ĠPerson > Ċ Ġ* ĠĠĠĠĠ Ġ) Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ ĠPerson Repository Impl ( Ċ Ġ* ĠĠĠĠĠĠĠĠĠ Ġval Ġdb : ĠApp Data Base , Ċ Ġ* ĠĠĠĠĠĠĠĠĠ Ġval Ġdata Map pers Facade : DataMap pers Facade Ċ Ġ* ĠĠĠĠĠ Ġ) Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġæķ°æį® æĺłå°Ħ éĿŀå¸¸ éĩįè¦ģ çļĦ æ¦Ĥ çİĩ ï¼Į åĲİ ç»Ń ä¼ļ åĨĻ è¯¦ç»Ĩ çļĦ ĠDemo Ġæ ¼ Ķ ç¤º Ċ Ġ* Ġ</ pre > Ċ Ġ*/ Ċ Ċ class ĠPerson Repository Impl ( ĊĠĠĠ Ġval Ġdb : ĠApp Data Base , ĊĠĠĠ Ġval Ġpage Config : ĠP aging Config , ĊĠĠĠ Ġval Ġmapper 2 Person Entity : ĠMapper < Person , ĠPerson Entity >, ĊĠĠĠ Ġval Ġmapper 2 Person : ĠMapper < Person Entity , ĠPerson > Ċ ) Ġ: ĠRepository Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġm Person Dao Ġby Ġlazy Ġ{ Ġdb . person Dao () Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpost Of Data (): ĠFlow < Paging Data < Person >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠP ager ( page Config ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åĬłè½½ æķ°æį®åºĵ çļĦæķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Person Dao . query All Data () ĊĠĠĠĠĠĠĠ Ġ}. flow . map Ġ{ Ġpaging Data Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæķ°æį® æĺłå°Ħ ï¼Į æķ°æį®åºĵ å®ŀä½ĵ ĠPerson Entity ĠâĢĶ âĢĶ > Ġ Ġä¸Ĭ å±Ĥ çĶ¨ åĪ°çļĦ å®ŀä½ĵ ĠPerson ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaging Data . map Ġ{ Ġmapper 2 Person . map ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove ( person : ĠPerson ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġæķ°æį® æĺłå°Ħ ï¼Į Ġä¸Ĭ å±Ĥ çĶ¨ åĪ°çļĦ å®ŀä½ĵ ĠPerson ĠâĢĶ âĢĶ > Ġ æķ°æį®åºĵ å®ŀä½ĵ ĠPerson Entity ĊĠĠĠĠĠĠĠ Ġm Person Dao . delete ( mapper 2 Person Entity . map ( person )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinsert ( person : ĠPerson ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġæķ°æį® æĺłå°Ħ ï¼Į Ġä¸Ĭ å±Ĥ çĶ¨ åĪ°çļĦ å®ŀä½ĵ ĠPerson ĠâĢĶ âĢĶ > Ġ æķ°æį®åºĵ å®ŀä½ĵ ĠPerson Entity ĊĠĠĠĠĠĠĠ Ġm Person Dao . delete ( mapper 2 Person Entity . map ( person )) ĊĠĠĠ Ġ} ĊĊ Ċ }