package Ġcom . android skeleton . data . repository Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . android skeleton . data . datasource . Local DataSource Ċ import Ġcom . android skeleton . data . datasource . base . Base DataSource Ċ import Ġcom . android skeleton . data . datasource . base . DataSource Ċ import Ġdagger . internal . Preconditions Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠBu dd ha ĠSa ik ia Ġon Ġ 0 1 - 0 6 - 2 0 1 7 . Ċ Ġ*/ Ċ @ Singleton Ċ class ĠRepository ( private Ġval Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaw Remote DataSource : ĠDataSource , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaw Local DataSource : ĠLocal DataSource ) Ġ: ĠBase DataSource (), ĠDataSource Ġ{ ĊĠĠĠ Ġprivate Ġval Ġremote DataSource : ĠDataSource ĊĠĠĠ Ġprivate Ġval Ġlocal DataSource : ĠLocal DataSource ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠRepository :: class . java . simple Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġremote DataSource Ġ= ĠPreconditions . checkNotNull ( aw Remote DataSource ) ĊĠĠĠĠĠĠĠ Ġlocal DataSource Ġ= ĠPreconditions . checkNotNull ( aw Local DataSource ) ĊĠĠĠ Ġ} Ċ }