/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠPur ple Te a Labs Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . pur p lete al abs . stores . remote Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Transform ations Ċ import Ġcom . pur p lete al abs . stores . cache . Store Ċ import Ġcom . pur p lete al abs . stores . remote . mapper . Entity Mapper Ċ import Ġcom . pur p lete al abs . stores . remote . model . Store Model Ċ import Ġcom . pur p lete al abs . stores . data . Store Remote Ċ Ċ /** Ċ Ġ* ĠRepository Ġmodule Ġfor Ġhandling Ġdata Ġoperations . Ċ Ġ*/ Ċ class ĠStore Remote Impl Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġstore Service : ĠStore Service , ĊĠĠĠ Ġprivate Ġval Ġmapper : ĠEntity Mapper < Store Model , ĠStore > Ċ ): Store Remote Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Stores (): ĠLive Data < List < Store >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTransform ations . map ( store Service . get Stores ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . stores . map Ġ{ Ġstore Model Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmapper . map From Remote ( store Model ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠFor ĠSingleton Ġinstantiation ĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠStore Remote Impl ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( store Service : ĠStore Service , Ġmapper : ĠEntity Mapper < Store Model , ĠStore >) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ?: Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠStore Remote Impl ( store Service , Ġmapper ). also Ġ{ Ġinstance Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ