package Ġcom . n ive k aa . ice pur py kt . infra . storage Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . n ive k aa . ice pur py kt . domain . model . Category Type Ċ import Ġcom . n ive k aa . ice pur py kt . domain . model . Label VM Ċ import Ġcom . n ive k aa . ice pur py kt . domain . model . Order Item VM Ċ import Ġcom . n ive k aa . ice pur py kt . domain . model . Product VM Ċ import Ġcom . n ive k aa . ice pur py kt . domain . spi . DB Storage Port Ċ import Ġjava . util .* Ċ Ċ class ĠDB Storage Adapter ( context : ĠContext ?) Ġ: ĠDB Storage Port Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdb Helper : ĠDB Helper ? Ġ= ĠDB Helper . getInstance ( context !! ) ĊĠĠĠ Ġoverride Ġfun Ġinit ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// this . db Helper Ġ= ĠDB Helper . getInstance ( context ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġp ants : ĠList < Product VM ?> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdb Helper ?. search By Category ( Category Type . P ANT S . name ) Ġ?: ĠArrayList () ĊĠĠĠ Ġoverride Ġval Ġsh oes : ĠList < Product VM ?> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdb Helper ?. search By Category ( Category Type . SHO ES . name ) Ġ?: ĠArrayList () ĊĠĠĠ Ġoverride Ġval Ġt sh ir ts : ĠList < Product VM ?> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdb Helper ?. search By Category ( Category Type . T SH IR TS . name ) Ġ?: ĠArrayList () ĊĠĠĠ Ġoverride Ġval Ġh ats : ĠList < Product VM ?> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdb Helper ?. search By Category ( Category Type . H ATS . name ) Ġ?: ĠArrayList () ĊĠĠĠ Ġoverride Ġval Ġbags : ĠList < Product VM ?> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdb Helper ?. search By Category ( Category Type . B AG S . name ) Ġ?: ĠArrayList () ĊĠĠĠ Ġoverride Ġval Ġorders : ĠList < Order Item VM ?> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdb Helper ?. all Orders Ġ?: ĠArrayList () ĊĊĠĠĠ Ġoverride Ġfun Ġadd Order ( order : ĠOrder Item VM ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( order Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb Helper !!. add Order ( order ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Product ( product VM : ĠProduct VM ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġdb Helper !!. add Product ( product VM ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġlabels : ĠList < Label VM ?> ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠArrays . asList ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel VM (" All ", ĠCategory Type . ALL ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel VM (" Sh oes ", ĠCategory Type . SHO ES ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel VM (" P ants ", ĠCategory Type . P ANT S ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel VM (" T - sh ir ts ", ĠCategory Type . T SH IR TS ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel VM (" H ats ", ĠCategory Type . H ATS ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel VM (" B ags ", ĠCategory Type . B AG S ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel VM (" Clo thes ", ĠCategory Type . CL OTH ES ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel VM (" F urn it ures ", ĠCategory Type . F URN IT URE S ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠ Ġoverride Ġfun Ġsearch Any ( category : ĠCategory Type ?): ĠList < Product VM ?> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( db Helper Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( category Ġ=== ĠCategory Type . ALL ) Ġdb Helper . all Products Ġelse Ġdb Helper . search By Category ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory ?. name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĠArrayList < Product VM >() ĊĠĠĠ Ġ} Ċ Ċ }