package Ġus l ugi . kon wers ja Ċ Ċ import Ġdb . Reg uly Db Bean Ċ import Ġmodel . dto .* Ċ import Ġmodel . enc je .* Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ import Ġreg uly . nlp . IF as ada N ar zed z ia N LP ĊĊ Ċ @ Component Ċ @ Transactional Ċ open Ġclass ĠReg ula Kon wer ter Ġ: ĠB az owy Kon wer ter (), ĠIK on wer ter < Reg ula , ĠReg ula Enc ja > Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfas ada N LP : ĠIF as ada N ar zed z ia N LP ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġkon wer ter Parame t row : ĠPar ame tr Kon wer ter ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġkon wer ter Wy w ol an Reg ul : ĠW yw ol anie Reg uly Kon wer ter ĊĊĠĠĠ Ġoverride Ġfun Ġkon w ert uj Do Enc ji ( a Dto : ĠReg ula ): ĠReg ula Enc ja Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Enc ja : ĠReg ula Enc ja Ġ= Ġpod aj Ob ie kt Z ar z ad z al ny < Reg ula Enc ja >( a Dto . id , ĠReg ula Enc ja :: class . java ) ĊĠĠĠĠĠĠĠ Ġwith ( a Dto ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparame try Do Us uni ec ia Str : ĠSet < String >? Ġ= Ġd aj Parame try Do Us uni ec ia ( parame try , Ġp Enc ja . parame try ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparame try Do Us uni ec ia : ĠList < Parame tr Reg uly Enc ja >? Ġ= Ġp Enc ja . parame try ?. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparame try Do Us uni ec ia Str ?. contains ( it . n az wa ) Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. toList () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġparame try Do Us uni ec ia ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreg uly Db Bean . us un W sz yst kie O dw ol ania Do Parame tr u ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreg uly Db Bean . us un Ob ie kt Z ar z ad z al ny ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . k od Ġ= Ġkod ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . tre sc Ġ= Ġtre sc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . parame try Ġ= Ġparame try . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Param Ġ= Ġkon wer ter Parame t row . kon w ert uj Do Enc ji ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Param . reg ula Ġ= Ġp Enc ja ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Param ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. to Mutable List () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . wy w ol ania Reg ul Ġ= Ġwy w ol ania Reg ul . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkon wer ter Wy w ol an Reg ul . kon w ert uj Do Enc ji ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. to Mutable Set () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġp Enc ja ; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkon w ert uj Do Transport u ( a Enc ja : ĠReg ula Enc ja ): ĠReg ula Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( a Enc ja ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Dto Ġ= ĠReg ula ( k od ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġtre sc ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġfas ada N LP . ro z po zn aj Se kw enc je ( tre sc ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġparame try . map Ġ{ Ġkon wer ter Parame t row . kon w ert uj Do Transport u ( it ) Ġ}. to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġwy w ol ania Reg ul . map Ġ{ Ġkon wer ter Wy w ol an Reg ul . kon w ert uj Do Transport u ( it ) Ġ}. to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Dto . id Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Dto . wers ja Ġ= Ġw ers ja ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġp Dto ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġd aj Parame try Do Us uni ec ia ( a Parame try Dto : ĠList < Parame tr > ?, Ġa Parame try Enc ja : ĠList < Parame tr Reg uly Enc ja >? ): ĠSet < String > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġnaz wy Dto Ġ= Ġa Parame try Dto ?. map Ġ{ Ġit . n az wa Ġ} ?. toSet () Ġ?: Ġempty Set () ĊĠĠĠĠĠĠĠ Ġval Ġnaz wy Enc ja Ġ= Ġa Parame try Enc ja ?. map Ġ{ Ġit . n az wa Ġ} ?. toSet () Ġ?: Ġempty Set () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ( n az wy Enc ja Ġ- Ġnaz wy Dto ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Component Ċ @ Transactional Ċ open Ġclass ĠPar ame tr Kon wer ter Ġ: ĠB az owy Kon wer ter (), ĠIK on wer ter < Parame tr , ĠPar ame tr Reg uly Enc ja > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġkon w ert uj Do Enc ji ( a Dto : ĠPar ame tr ): ĠPar ame tr Reg uly Enc ja Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Enc ja : ĠPar ame tr Reg uly Enc ja Ġ= Ġpod aj Ob ie kt Z ar z ad z al ny < Parame tr Reg uly Enc ja >( a Dto . id , ĠPar ame tr Reg uly Enc ja :: class . java ) ĊĠĠĠĠĠĠĠ Ġwith ( a Dto ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . n az wa Ġ= Ġnaz wa ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . typ Ġ= Ġtyp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . war to sc Dom ys ln a Ġ= Ġwar to sc Dom ys ln a ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . c zy Us uw al ny Ġ= Ġc zy Us uw al ny ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġp Enc ja ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkon w ert uj Do Transport u ( a Enc ja : ĠPar ame tr Reg uly Enc ja ): ĠPar ame tr Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( a Enc ja ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Dto Ġ= ĠPar ame tr ( n az wa , Ġtyp , Ġwar to sc Dom ys ln a , Ġc zy Us uw al ny ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Dto . id Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Dto . wers ja Ġ= Ġw ers ja ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġp Dto ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Component Ċ @ Transactional Ċ class ĠW yw ol anie Reg uly Kon wer ter Ġ: ĠB az owy Kon wer ter (), ĠIK on wer ter < Wy w ol anie Reg uly , ĠW yw ol anie Reg uly Enc ja > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġkon w ert uj Do Enc ji ( a Dto : ĠW yw ol anie Reg uly ): ĠW yw ol anie Reg uly Enc ja Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Enc ja : ĠW yw ol anie Reg uly Enc ja Ġ= Ġpod aj Ob ie kt Z ar z ad z al ny < Wy w ol anie Reg uly Enc ja >( a Dto . id , ĠW yw ol anie Reg uly Enc ja :: class . java ) ĊĠĠĠĠĠĠĠ Ġwith ( a Dto ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . reg ula W ol aj aca Ġ= Ġreg uly Db Bean . po b ierz Reg ule Po K od zie ( k od Reg uly W ol aj ace j ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . reg ula W ol ana Ġ= Ġreg uly Db Bean . po b ierz Reg ule Po K od zie ( k od Reg uly W ol ane j ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! parame try . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . parame try Ġ= Ġparame try . map Ġ{ Ġpod aj Enc je Parame tr u Wy w ol ania ( it , Ġp Enc ja ) Ġ}. to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// jest Ġwy w ol anie Ġale Ġnie Ġma Ġparame t row , Ġwi ec Ġin ic jal nie Ġtr z eba Ġz alo zy c ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// do Ġparame t row Ġb ierz emy Ġty l ko Ġte , Ġk tore Ġnie Ġsa Ġst al ym i ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . reg ula W ol ana . parame try . filter Ġ{ Ġit . war to sc Dom ys ln a . isNull OrEmpty () Ġ}. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Param : ĠPar ame tr Wy w ol ania Reg uly Enc ja Ġ= Ġpod aj Ob ie kt Z ar z ad z al ny < Parame tr Wy w ol ania Reg uly Enc ja >( null , ĠPar ame tr Wy w ol ania Reg uly Enc ja :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Param . wy w ol anie Ġ= Ġp Enc ja ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Param . parame tr Reg uly W ol ane j Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . parame try Ġ= Ġmutable ListOf < Parame tr Wy w ol ania Reg uly Enc ja >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . parame try . add ( p Param ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġp Enc ja ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpod aj Enc je Parame tr u Wy w ol ania ( a Dto : ĠPar ame tr Wy w ol ania Reg uly , Ġa Enc ja Wy w ol ania : ĠW yw ol anie Reg uly Enc ja ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠPar ame tr Wy w ol ania Reg uly Enc ja Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Enc ja : ĠPar ame tr Wy w ol ania Reg uly Enc ja Ġ= Ġpod aj Ob ie kt Z ar z ad z al ny < Parame tr Wy w ol ania Reg uly Enc ja >( a Dto . id , ĠPar ame tr Wy w ol ania Reg uly Enc ja :: class . java ) ĊĠĠĠĠĠĠĠ Ġwith ( a Dto ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . parame tr Reg uly W ol aj ace j Ġ= Ġreg uly Db Bean . po b ierz Parame tr Reg uly Po N az w ie ( a Enc ja Wy w ol ania . reg ula W ol aj aca , Ġnaz wa Parame tr u Reg uly W ol aj ace j ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . parame tr Reg uly W ol ane j Ġ= Ġreg uly Db Bean . po b ierz Parame tr Reg uly Po N az w ie ( a Enc ja Wy w ol ania . reg ula W ol ana , Ġnaz wa Parame tr u Reg uly W ol ane j ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Enc ja . wy w ol anie Ġ= Ġa Enc ja Wy w ol ania ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġp Enc ja ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġkon w ert uj Do Transport u ( a Enc ja : ĠW yw ol anie Reg uly Enc ja ): ĠW yw ol anie Reg uly Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwith ( a Enc ja ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Dto Ġ= ĠW yw ol anie Reg uly ( reg ula W ol aj aca . k od , Ġreg ula W ol ana . k od ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Dto . n az wy Parame t row Reg uly W ol aj ace j Ġ= Ġreg ula W ol aj aca . parame try . filter Ġ{ Ġit . war to sc Dom ys ln a . isNull OrEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . n az wa Ġ}. toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Dto . parame try Ġ= Ġparame try . map Ġ{ Ġpod aj Ob ie kt Transport owy Parame tr u Wy w ol ania ( it ) Ġ}. to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Dto . id Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Dto . wers ja Ġ= Ġw ers ja ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġp Dto ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpod aj Ob ie kt Transport owy Parame tr u Wy w ol ania ( a Enc ja : ĠPar ame tr Wy w ol ania Reg uly Enc ja ): ĠPar ame tr Wy w ol ania Reg uly Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( a Enc ja ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Dto Ġ= ĠPar ame tr Wy w ol ania Reg uly ( parame tr Reg uly W ol aj ace j ?. n az wa Ġ?: Ġ"", Ġparame tr Reg uly W ol ane j . n az wa ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Dto . id Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp Dto . wers ja Ġ= Ġw ers ja ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġp Dto ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ @ Component Ċ @ Transactional Ċ open Ġclass ĠB az owy Kon wer ter Ġ{ ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġreg uly Db Bean : ĠReg uly Db Bean ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠEn c ja > Ġpod aj Ob ie kt Z ar z ad z al ny ( a Id : ĠLong ?, Ġa Typ Ob ie kt uZ ar z ad z al nego : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġreg uly Db Bean . pod aj Ob ie kt Z ar z ad z al ny ( a Id , Ġa Typ Ob ie kt uZ ar z ad z al nego ) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ interface ĠIK on wer ter < M 1 Ġ: ĠOb ie kt B az owy , ĠM 2 Ġ: ĠEn c ja > Ġ{ ĊĊĠĠĠ Ġfun Ġkon w ert uj Do Enc ji ( a Dto : ĠM 1 ): ĠM 2 ĊĊĠĠĠ Ġfun Ġkon w ert uj Do Transport u ( a Enc ja : ĠM 2 ): ĠM 1 Ċ Ċ } ĊĊĊĊĊĊ