package Ġno . nav . hel se . sp ion . dom ene Ċ Ċ import Ġcom . github . java faker . F aker Ċ import Ġno . nav . hel se . sp ion . web . dto . validation . Organ is as j ons nummer Validator Ċ import Ġkotlin . random . Random Ċ Ċ class ĠAr be id sg iver Generator ( ĊĠĠĠ Ġfixed List : ĠMutable List < Ar be id sg iver >? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġvar Ġmax Unique Ar be id sg iv ere : ĠInt Ġ= Ġ 1 0 0 0 Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġfaker Ġ= ĠFaker () ĊĠĠĠ Ġprivate Ġval Ġar be id sg iv ere Ġ= Ġfixed List Ġ?: Ġmutable ListOf () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( fixed List Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Unique Ar be id sg iv ere Ġ= Ġfixed List . size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetRandom Ar be ids G iver (): ĠAr be id sg iver Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( ar be id sg iv ere . size Ġ>= Ġmax Unique Ar be id sg iv ere ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġar be id sg iv ere . pick Random () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġorg Nr Ġ= ĠRandom . Default . next Long ( 1 1 1 1 1 1 1 1 , Ġ 9 9 9 9 9 9 9 9 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġk nr Org Ġ= ĠOrgan is as j ons nummer Validator . checksum ( Organ is as j ons nummer Validator . Companion . tabel ler . weights , Ġorg Nr ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġvir k Nr Ġ= ĠRandom . Default . next Long ( 1 1 1 1 1 1 1 1 , Ġ 9 9 9 9 9 9 9 9 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġk nr V irk Ġ= ĠOrgan is as j ons nummer Validator . checksum ( Organ is as j ons nummer Validator . Companion . tabel ler . weights , Ġvir k Nr ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( k nr Org Ġ== Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorg Nr Ġ= ĠRandom . Default . next Long ( 1 1 1 1 1 1 1 1 , Ġ 9 9 9 9 9 9 9 9 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk nr Org Ġ= ĠOrgan is as j ons nummer Validator . checksum ( Organ is as j ons nummer Validator . Companion . tabel ler . weights , Ġorg Nr ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( k nr V irk Ġ== Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvir k Nr Ġ= ĠRandom . Default . next Long ( 1 1 1 1 1 1 1 1 , Ġ 9 9 9 9 9 9 9 9 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk nr V irk Ġ= ĠOrgan is as j ons nummer Validator . checksum ( Organ is as j ons nummer Validator . Companion . tabel ler . weights , Ġvir k Nr ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġorg Nr Ġ+= Ġk nr Org ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvir k Nr Ġ+= Ġk nr V irk ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġar be ids G iver Ġ= ĠAr be id sg iver ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvir k Nr ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġar be id sg iv ere . add ( ar be ids G iver ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġar be ids G iver ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġ< E > ĠList < E >. pick Random (): ĠE Ġ{ ĊĠĠĠ Ġreturn Ġthis [ Random . Default . nextInt ( 0 , Ġthis . size )] !! Ċ } Ċ