package Ġio . code labs . zen ite ch . core . datasource . room Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Database Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . room . Room Database Ċ import Ġio . code labs . zen ite ch . Build Config Ċ import Ġio . code labs . zen ite ch . core . DATABASE _ NAME Ċ import Ġio . code labs . zen ite ch . data . Cart Ċ import Ġio . code labs . zen ite ch . data . Issue Ċ import Ġio . code labs . zen ite ch . data . Product Ċ import Ġio . code labs . zen ite ch . data . User Ċ Ċ @ Database ( ĊĠĠĠ Ġentities Ġ= Ġ[ User :: class , ĠProduct :: class , ĠIssue :: class , ĠCart :: class ], ĊĠĠĠ Ġversion Ġ= ĠBuild Config . VERSION _ CODE , ĊĠĠĠ Ġexport Schema Ġ= Ġtrue Ċ ) Ċ abstract Ġclass ĠRoom App Database Ġ: ĠRoom Database () Ġ{ ĊĊĠĠĠ Ġabstract Ġfun Ġdao (): ĠRoom App Dao ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠRoom App Database ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġget ( context : ĠContext ): ĠRoom App Database Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinstance Ġ?: Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ?: ĠRoom . database Builder ( context , ĠRoom App Database :: class . java , ĠDATABASE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fallback To Dest ruct ive Migration () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build (). also Ġ{ Ġinstance Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }