package Ġorg . it step . li ann oi . reactive search . application . storage . core Ċ Ċ import Ġio . reactivex . Flow able Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . rx kotlin . addTo Ċ import Ġorg . it step . li ann oi . reactive search . application . common . interfaces . Users Repository Ċ import Ġorg . it step . li ann oi . reactive search . application . common . storage . Seeder Ċ import Ġorg . it step . li ann oi . reactive search . application . storage . users . commands . Create Command Ċ import Ġorg . it step . li ann oi . reactive search . application . storage . users . models . User Ċ import Ġorg . it step . li ann oi . reactive search . application . storage . users . queries . List Query Ċ import Ġjava . util .* Ċ Ċ class ĠSample Data Seeder Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġusers Repository : ĠUsers Repository , ĊĠĠĠ Ġprivate Ġval Ġdis posable : ĠComposite Disposable Ċ ) Ġ: ĠSeeder Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġseed All ( notification : ĠNotification ) Ġ{ ĊĠĠĠĠĠĠĠ Ġusers Repository . getAll ( List Query (), ĠList Query Handler ( notification )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// //////////////////////////////////////////////////////////////////////// / ĊĠĠĠ Ġ// ĠHelpers ĊĠĠĠ Ġ// //////////////////////////////////////////////////////////////////////// / ĊĊĠĠĠ Ġprivate Ġfun Ġseed Users ( notification : ĠNotification ) Ġ{ ĊĠĠĠĠĠĠĠ ĠFlow able . range ( 0 , Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠUser ( firstName Ġ= ĠUUID . randomUUID (). toString ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġusers Repository . create ( Create Command ( it ), ĠCreate Command . Notification Handler ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġnotification . on Users Seed ing Success () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġnotification . on Users Seed ing Error ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). addTo ( dis posable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// //////////////////////////////////////////////////////////////////////// / ĊĠĠĠ Ġ// ĠNested Ġmembers ĊĠĠĠ Ġ// //////////////////////////////////////////////////////////////////////// / ĊĊĠĠĠ Ġinterface ĠNotification Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Users Seed ing Success () ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Users Seed ing Error ( throwable : ĠThrowable ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Users Seed ing Skip () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġclass ĠNotification Handler Ġ: ĠNotification Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Users Seed ing Success () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġno - op Ġ*/ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Users Seed ing Error ( throwable : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġno - op Ġ*/ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Users Seed ing Skip () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġno - op Ġ*/ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠList Query Handler Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġnotification : ĠNotification ĊĠĠĠ Ġ) Ġ: ĠList Query . Notification Handler () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Users F etched Success ( users : ĠList < User >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( users . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification . on Users Seed ing Skip () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġseed Users ( notification ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ