package Ġno . nav . e ess i . pens jon . p dl . valid ering Ċ Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . B EL G IA Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . B UL G AR IA Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . D AN MARK Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . EST LAND Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . FIN LAND Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . F RAN K RI KE Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . IS LAND Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . ITAL IA Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . LAT V IA Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . LIT AU EN Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . N ED ER LAND Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . POL EN Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . S LO VEN IA Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . SPAN IA Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . STOR BR IT AN N IA Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . S VER IG E Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . TY SK LAND Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . G yl di ge Land . UNG ARN Ċ import Ġorg . slf 4 j . LoggerFactory Ċ Ċ object ĠLand sp es ifi kk Val ider ing Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( Land sp es ifi kk Val ider ing :: class . java ) ĊĊĠĠĠ Ġfun Ġval ider L ands sp es ifi kk UID ( land kode : ĠString , Ġuid : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" valid er Ġland : Ġ$ land kode , Ġuid : Ġ$ uid , Ġlen : Ġ${ uid . length }") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( G yl di ge Land . land kode ( land kode )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB EL G IA Ġ-> Ġbel g ia ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB UL G AR IA Ġ-> Ġbul g aria ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFIN LAND Ġ-> Ġfin land ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIT AL IA -> Ġit alia ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLAT V IA Ġ-> Ġlat via ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN ED ER LAND -> Ġn eder land ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS LO VEN IA Ġ-> Ġslo ven ia ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS VER IG E Ġ-> Ġs ver ige ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIS LAND , ĠDAN MARK Ġ-> Ġdan mark Is land ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEST LAND , ĠL IT AU EN , ĠPOL EN Ġ-> Ġest land Lit au en Pol en ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTY SK LAND Ġ-> Ġt ys k land ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUN G ARN Ġ-> Ġun g arn ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF RAN K RI KE Ġ-> Ġfr ank ri ke ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSP AN IA Ġ-> Ġspan ia ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSTOR BR IT AN N IA Ġ-> Ġst or br it ann ia ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ Ġfalse ĊĠĠĠĠĠĠĠ Ġ}. also Ġ{ Ġlogger . debug ("$ land kode Ġ-> Ġresult Ġ Ġof Ġour Ġdream s : Ġ$ it ") Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġfun ĠString . check Digits Length ( range : ĠInt Range , Ġlen : ĠInt ): ĠBoolean Ġ= Ġ Ġthis . substring ( range ). check Digits Length ( len ) ĊĊĠĠĠ Ġfun ĠString . check Digits Length ( length : ĠInt ): ĠBoolean Ġ= Ġthis . filter Ġ{ Ġit . is Digit () Ġ}. length Ġ== Ġlength ĊĊĠĠĠ Ġfun ĠString . is Letters Or Digit (): ĠBoolean Ġ= Ġthis . none Ġ{ Ġit Ġ! in Ġ' A ' .. ' Z ' Ġ&& Ġit Ġ! in Ġ' a ' .. ' z ' Ġ&& Ġit Ġ! in Ġ' 0 ' .. ' 9 ' Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġer H vert red je B ok st av Blank ( str : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 2 Ġuntil Ġstr . length Ġstep Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( str [ i ] Ġ!= Ġ' Ġ') Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbel g ia ( uid : ĠString ) Ġ= Ġuid . length Ġ== Ġ 1 3 Ġ&& Ġuid . check Digits Length ( 1 1 ) Ġ&& Ġuid . substring ( 6 , Ġ 7 ) Ġ== Ġ"-" Ġ&& Ġuid . substring ( 1 0 , Ġ 1 1 ) Ġ== Ġ"-" ĊĠĠĠ Ġprivate Ġfun Ġbul g aria ( uid : ĠString ) Ġ= Ġuid . check Digits Length ( 1 0 ) ĊĠĠĠ Ġprivate Ġfun Ġfin land ( uid : ĠString ) Ġ= Ġuid . length Ġ== Ġ 1 1 Ġ&& Ġuid . substring ( 6 , 7 ) Ġin ĠlistOf ("- "," A "," a ") Ġ&& Ġuid . check Digits Length ( Int Range ( 0 , 5 ), Ġ 6 ) Ġ&& Ġuid . check Digits Length ( Int Range ( 7 , Ġ 9 ), Ġ 3 ) ĊĠĠĠ Ġprivate Ġfun Ġit alia ( uid : ĠString ) Ġ= Ġuid . is Letters Or Digit () Ġ&& Ġuid . length Ġ== Ġ 1 6 ĊĠĠĠ Ġprivate Ġfun Ġlat via ( uid : ĠString ) Ġ= Ġuid . check Digits Length ( 1 1 ) Ġ&& Ġuid . substring ( 5 , Ġ 6 ) Ġ!= Ġ"-" Ġ&& Ġuid . check Digits Length ( Int Range ( 0 , 6 ), Ġ 6 ) Ġ&& Ġuid . check Digits Length ( Int Range ( 6 , 1 1 ), Ġ 5 ) ĊĠĠĠ Ġprivate Ġfun Ġn eder land ( uid : ĠString ) Ġ= Ġuid . length Ġ== Ġ 1 1 Ġ&& Ġuid . check Digits Length ( 9 ) Ġ&& Ġuid . substring ( 4 , Ġ 5 ) Ġ== Ġ"." Ġ&& Ġuid . substring ( 7 , Ġ 8 ) Ġ== Ġ"." ĊĠĠĠ Ġprivate Ġfun Ġslo ven ia ( uid : ĠString ) Ġ= Ġ( uid . check Digits Length ( 1 3 ) Ġ|| Ġuid . check Digits Length ( 8 )) Ġ Ġ&& Ġ( uid . length Ġ== Ġ 8 Ġ|| Ġuid . length Ġ== Ġ 1 3 ) ĊĠĠĠ Ġprivate Ġfun Ġs ver ige ( uid : ĠString ) Ġ= Ġuid . length Ġ== Ġ 1 1 Ġ&& Ġuid . check Digits Length ( 1 0 ) Ġ&& Ġuid . substring ( 6 , Ġ 7 ) Ġin ĠlistOf ("- ") Ġ// f jer net Ġ+ Ġda Ġdet te Ġer Ġfor Ġ 1 0 0 Ã¥ ring + ĊĠĠĠ Ġprivate Ġfun Ġdan mark Is land ( uid : ĠString ) Ġ= Ġuid . length Ġ== Ġ 1 1 Ġ&& Ġuid . check Digits Length ( 1 0 ) Ġ&& Ġuid . substring ( 6 , Ġ 7 ) Ġ== Ġ"-" Ġ&& Ġuid . check Digits Length ( Int Range ( 0 , 5 ), Ġ 6 ) Ġ&& Ġuid . check Digits Length ( Int Range ( 7 , 1 0 ), Ġ 4 ) ĊĠĠĠ Ġprivate Ġfun Ġest land Lit au en Pol en ( uid : ĠString ) Ġ= Ġuid . check Digits Length ( 1 1 ) Ġ&& Ġuid . length Ġ== Ġ 1 1 ĊĠĠĠ Ġprivate Ġfun Ġt ys k land ( uid : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġuid . length Ġ== Ġ 1 5 Ġ&& Ġuid . substring ( 2 , 3 ) Ġ== Ġ" Ġ" Ġ&& Ġuid . substring ( 9 , Ġ 1 0 ) Ġ== Ġ" Ġ" Ġ&& Ġuid . substring ( 1 1 , 1 2 ) Ġ== Ġ" Ġ" Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuid . check Digits Length ( Int Range ( 0 , 2 ), Ġ 2 ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuid . check Digits Length ( Int Range ( 3 , Ġ 8 ), Ġ 6 ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuid . check Digits Length ( Int Range ( 1 2 , Ġ 1 4 ), Ġ 3 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġun g arn ( uid : ĠString ): ĠBoolean Ġ= Ġuid . check Digits Length ( 9 ) Ġ&& Ġuid . length Ġ== Ġ 1 1 Ġ&& Ġuid . substring ( 3 , 4 ) Ġ== Ġ"-" Ġ&& Ġuid . substring ( 7 , 8 ) Ġ== Ġ"-" ĊĠĠĠ Ġprivate Ġfun Ġfr ank ri ke ( uid : ĠString ): ĠBoolean Ġ= Ġuid . check Digits Length ( 1 3 ) Ġ&& Ġuid . length Ġ== Ġ 1 8 Ġ Ġ&& Ġuid . substring ( 1 , 2 ) Ġ== Ġ" Ġ" Ġ&& Ġuid . substring ( 4 , 5 ) Ġ== Ġ" Ġ" Ġ&& Ġuid . substring ( 7 , 8 ) Ġ== Ġ" Ġ" Ġ&& Ġuid . substring ( 1 0 , 1 1 ) Ġ== Ġ" Ġ" Ġ Ġ&& Ġuid . substring ( 1 4 , 1 5 ) Ġ== Ġ" Ġ" ĊĠĠĠ Ġprivate Ġfun Ġspan ia ( uid : ĠString ): ĠBoolean Ġ= Ġuid . is Letters Or Digit () Ġ&& Ġuid . length Ġ== Ġ 1 0 ĊĠĠĠ Ġprivate Ġfun Ġst or br it ann ia ( uid : ĠString ): ĠBoolean Ġ= Ġuid . replace (" Ġ"," ") Ġ. is Letters Or Digit () Ġ&& Ġer H vert red je B ok st av Blank ( uid ) Ġ Ġ&& Ġuid . length Ġ> Ġ 1 0 Ċ } Ċ Ċ enum Ġclass ĠG yl di ge Land ( val Ġland kode : ĠString ) Ġ{ ĊĠĠĠ ĠB EL G IA (" B EL "), ĊĠĠĠ ĠB UL G AR IA (" BGR "), ĊĠĠĠ ĠFIN LAND (" FIN "), ĊĠĠĠ ĠIS LAND (" IS L "), ĊĠĠĠ ĠDAN MARK (" DN K "), ĊĠĠĠ ĠEST LAND (" EST "), ĊĠĠĠ ĠL IT AU EN (" LT U "), ĊĠĠĠ ĠPOL EN (" POL "), ĊĠĠĠ ĠLAT V IA (" L VA "), ĊĠĠĠ ĠIT AL IA (" IT A "), ĊĠĠĠ ĠN ED ER LAND (" N LD "), ĊĠĠĠ ĠS LO VEN IA (" SV N "), ĊĠĠĠ ĠS VER IG E (" S WE "), ĊĠĠĠ ĠSP AN IA (" ESP "), ĊĠĠĠ ĠTY SK LAND (" DE U "), ĊĠĠĠ ĠUN G ARN (" H UN "), ĊĠĠĠ ĠF RAN K RI KE (" FR A "), ĊĠĠĠ ĠSTOR BR IT AN N IA (" GB R "); ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġland kode ( land kode : ĠString ): ĠG yl di ge Land ? Ġ= Ġvalues (). first OrNull Ġ{ Ġit . land kode Ġ== Ġland kode Ġ} ĊĠĠĠ Ġ} Ċ }