package Ġno . nav . hel se . sp ion . ved t aks meld ing Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . Java Time Module Ċ import Ġcom . fasterxml . jackson . module . kotlin . Kotlin Module Ċ import Ġno . nav . hel se . sp ion . dom ene . Ar be id sg iver Ċ import Ġno . nav . hel se . sp ion . dom ene . Ar be id sg iver Generator Ċ import Ġno . nav . hel se . sp ion . dom ene . Per i ode Ċ import Ġno . nav . hel se . sp ion . dom ene . yt else sp eri ode . Person Generator Ċ import Ġjava . time . LocalDate Ċ import Ġkotlin . random . Random Ċ Ċ class ĠSp le is V ed t aks meld ing Generator ( ĊĠĠĠ Ġprivate Ġval Ġom : ĠObjectMapper Ġ= ĠObjectMapper (). register Modules ( Kotlin Module (), ĠJava Time Module ()), ĊĠĠĠ Ġfixed List Ar be id sg iv ere : ĠMutable List < Ar be id sg iver >? Ġ= Ġnull , ĊĠĠĠ Ġmax Unique Ar be id sg iv ere : ĠInt Ġ= Ġ 1 0 , ĊĠĠĠ Ġmax Unique Person er : ĠInt Ġ= Ġ 1 0 0 , ĊĠĠĠ Ġprivate Ġval Ġinit Date : ĠLocalDate Ġ= ĠLocalDate . of ( 2 0 2 0 , Ġ 1 , Ġ 1 ) Ċ ) Ġ: ĠIterable < Sp le is Mel ding >, ĠIterator < Sp le is Mel ding > Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġar be id sg iver Generator Ġ= ĠAr be id sg iver Generator ( fixed List Ar be id sg iv ere , Ġmax Unique Ar be id sg iv ere ) ĊĠĠĠ Ġprivate Ġval Ġperson Generator Ġ= ĠPerson Generator ( max Unique Person er ) ĊĠĠĠ Ġprivate Ġvar Ġnum Generated V ed tak Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġval Ġmax Per i ode Length Ġ= Ġ 3 1 L ĊĊĠĠĠ Ġprivate Ġfun Ġrandom Per i ode (): ĠPer i ode Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġf om Ġ= Ġinit Date . plus Days ( Random . Default . next Long ( 0 , Ġ( num Generated V ed tak Ġ% Ġ 2 0 0 0 Ġ+ Ġ 1 ). to Long ())) ĊĠĠĠĠĠĠĠ Ġval Ġtom Ġ= Ġf om . plus Days ( Random . Default . next Long ( 1 , Ġmax Per i ode Length )) ĊĠĠĠĠĠĠĠ Ġreturn ĠPer i ode ( f om , Ġtom ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġsy ke meld ings Gr ader Ġ= ĠlistOf ( 2 0 , Ġ 3 0 , Ġ 5 0 , Ġ 8 0 , Ġ 1 0 0 ) ĊĊĠĠĠ Ġprivate Ġfun Ġgenerate (): ĠSp le is Mel ding Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġper i ode Ġ= Ġrandom Per i ode () ĊĠĠĠĠĠĠĠ Ġval Ġperson Ġ= Ġperson Generator . getRandom Person () ĊĠĠĠĠĠĠĠ Ġnum Generated V ed tak ++ ĊĊĠĠĠĠĠĠĠ Ġval Ġved tak Ġ= ĠSp le is V ed tak Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode . f om , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode . tom , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp le is V ed tak Dto . Sp le is U tb et aling Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar be id sg iver Generator . getRandom Ar be ids G iver (). ar be id sg iver Id !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" SP REF ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp le is V ed tak Dto . Sp le is U tb et aling Dto . Sp le is U tb et al ings lin je Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode . f om , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode . tom , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 0 0 0 Ġ/ Ġ 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠSp le is Mel ding ( person . ident it ets nummer , Ġnum Generated V ed tak . to Long (), ĠSp le is Mel ding stype . V ed tak . name , Ġom . writeValue AsString ( ved tak )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġiterator (): ĠIterator < Sp le is Mel ding > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Next (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnext (): ĠSp le is Mel ding Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġgenerate () ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġ< E > ĠList < E >. pick Random (): ĠE Ġ{ ĊĠĠĠ Ġreturn Ġthis [ Random . Default . nextInt ( 0 , Ġthis . size )] !! Ċ } Ċ