package Ġcom . ams av arth an . security . data . database Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Database Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . room . Room Database Ċ import Ġandroidx . room . Type Converters Ċ import Ġcom . ams av arth an . security . data . database . guardian . Guard ian Ċ import Ġcom . ams av arth an . security . data . database . guardian . Guard ian Dao Ċ import Ġcom . ams av arth an . security . data . database . user . User Ċ import Ġcom . ams av arth an . security . data . database . user . User Dao ĊĊ Ċ @ Database ( entities Ġ= Ġ[ User :: class , ĠGuard ian :: class ], Ġversion Ġ= Ġ 1 , Ġexport Schema Ġ= Ġfalse ) Ċ @ Type Converters ( value Ġ= Ġ[ Room Type Converters :: class ]) Ċ abstract Ġclass ĠLocal Database Ġ: ĠRoom Database () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠtableName Ġ= Ġ" local - database " ĊĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠINSTANCE : ĠLocal Database ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( context : ĠContext ): ĠLocal Database Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠINSTANCE Ġ?: Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Database ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Synchron ized ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbuild Database ( context : ĠContext ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Database :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtableName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fallback To Dest ruct ive Migration () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġuser Dao (): ĠUser Dao ĊĠĠĠ Ġabstract Ġfun Ġguard ian Dao (): ĠGuard ian Dao Ċ Ċ }