/* Ċ Ġ* Ġ ĠCopyright Ġ( c ) Ġ 2 0 0 4 - 2 0 2 1 , ĠUniversity Ġof ĠOs lo Ċ Ġ* Ġ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġ ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ġwithout Ċ Ġ* Ġ Ġmodification , Ġare Ġpermitted Ġprovided Ġthat Ġthe Ġfollowing Ġconditions Ġare Ġmet : Ċ Ġ* Ġ ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , Ġthis Ċ Ġ* Ġ Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . Ċ Ġ* Ċ Ġ* Ġ ĠRedistributions Ġin Ġbinary Ġform Ġmust Ġreproduce Ġthe Ġabove Ġcopyright Ġnotice , Ċ Ġ* Ġ Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer Ġin Ġthe Ġdocumentation Ċ Ġ* Ġ Ġand / or Ġother Ġmaterials Ġprovided Ġwith Ġthe Ġdistribution . Ċ Ġ* Ġ ĠNeither Ġthe Ġname Ġof Ġthe ĠH ISP Ġproject Ġnor Ġthe Ġnames Ġof Ġits Ġcontributors Ġmay Ċ Ġ* Ġ Ġbe Ġused Ġto Ġendorse Ġor Ġpromote Ġproducts Ġderived Ġfrom Ġthis Ġsoftware Ġwithout Ċ Ġ* Ġ Ġspecific Ġprior Ġwritten Ġpermission . Ċ Ġ* Ċ Ġ* Ġ ĠTHIS ĠSOFTWARE ĠIS ĠPROVIDED ĠBY ĠTHE ĠCOPYRIGHT ĠHOLDERS ĠAND ĠCONTRIBUTORS Ġ" AS ĠIS " ĠAND Ċ Ġ* Ġ ĠANY ĠEXPRESS ĠOR ĠIMPLIED ĠWARRANTIES , ĠINCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠTHE ĠIMPLIED Ċ Ġ* Ġ ĠWARRANTIES ĠOF ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠARE Ċ Ġ* Ġ ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠCOPYRIGHT ĠOWNER ĠOR ĠCONTRIBUTORS ĠBE ĠLIABLE ĠFOR Ċ Ġ* Ġ ĠANY ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , ĠSPECIAL , ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL ĠDAMAGES Ċ Ġ* Ġ Ġ( INCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR ĠSERVICES ; Ċ Ġ* Ġ ĠLOSS ĠOF ĠUSE , ĠDATA , ĠOR ĠPROFITS ; ĠOR ĠBUSINESS ĠINTERRUPTION ) ĠHOWEVER ĠCAUSED ĠAND ĠON Ċ Ġ* Ġ ĠANY ĠTHEORY ĠOF ĠLIABILITY , ĠWHETHER ĠIN ĠCONTRACT , ĠSTRICT ĠLIABILITY , ĠOR ĠTORT Ċ Ġ* Ġ Ġ( INCLUDING ĠNEGLIGENCE ĠOR ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE ĠOF ĠTHIS Ċ Ġ* Ġ ĠSOFTWARE , ĠEVEN ĠIF ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . Ċ Ġ*/ Ċ package Ġorg . h isp . dh is . android . core . tracked entity . internal Ċ Ċ import Ġdagger . Re usable Ċ import Ġjavax . inject . Inject Ċ import Ġorg . h isp . dh is . android . core . common . State Ċ import Ġorg . h isp . dh is . android . core . enrollment . internal . Enrollment Store Ċ import Ġorg . h isp . dh is . android . core . event . internal . Event Store Ċ import Ġorg . h isp . dh is . android . core . tracked entity . New Tracker Importer Tracked Entity Ċ Ċ @ Re usable Ċ internal Ġclass ĠNew Tracker Importer Tracked Entity Post StateManager Ġ@ Inject Ġinternal Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġtracked Entity Instance Store : ĠTrack ed Entity Instance Store , ĊĠĠĠ Ġprivate Ġval Ġenrollment Store : ĠEn rollment Store , ĊĠĠĠ Ġprivate Ġval Ġevent Store : ĠEvent Store , ĊĠĠĠ Ġprivate Ġval Ġh : ĠState Pers istor Helper Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġrestore States ( tracked Entities : ĠList < New Tracker Importer Tracked Entity >) Ġ{ ĊĠĠĠĠĠĠĠ Ġset States ( tracked Entities , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Nested Block Depth ") ĊĠĠĠ Ġfun Ġset States ( tracked Entities : ĠList < New Tracker Importer Tracked Entity >, Ġforced State : ĠState ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġte i Map Ġ= Ġmutable Map Of < State , ĠMutable List < String >>() ĊĠĠĠĠĠĠĠ Ġval Ġenrollment Map Ġ= Ġmutable Map Of < State , ĠMutable List < String >>() ĊĠĠĠĠĠĠĠ Ġval Ġevent Map Ġ= Ġmutable Map Of < State , ĠMutable List < String >>() ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( tracked Entity Ġin Ġtracked Entities ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh . add State ( te i Map , Ġtracked Entity , Ġforced State ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( enrollment Ġin Ġtracked Entity . enroll ments () !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh . add State ( enrollment Map , Ġenrollment , Ġforced State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( event Ġin Ġenrollment . events () !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh . add State ( event Map , Ġevent , Ġforced State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġh . persist States ( te i Map , Ġtracked Entity Instance Store ) ĊĠĠĠĠĠĠĠ Ġh . persist States ( enrollment Map , Ġenrollment Store ) ĊĠĠĠĠĠĠĠ Ġh . persist States ( event Map , Ġevent Store ) ĊĠĠĠ Ġ} Ċ } Ċ