package Ġno . nav . sy fo . testutil Ċ Ċ import Ġno . nav . sy fo . domain . Sp ors mal Ċ import Ġno . nav . sy fo . domain . S var Ċ import Ġno . nav . sy fo . domain . Sy ke pen ge so kn ad Ċ Ċ fun ĠSy ke pen ge so kn ad . bes var sp ors mal ( tag : ĠString , Ġs var : ĠString ? Ġ= Ġnull , Ġs var List e : ĠList < String >? Ġ= Ġnull ): ĠSy ke pen ge so kn ad Ġ{ ĊĠĠĠ Ġif Ġ( s var Ġ== Ġnull Ġ&& Ġs var List e Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" S var Ġog Ġs var Ġliste Ġkan Ġik ke Ġv Ã¦ re Ġnull , Ġh vis Ġdu Ġv il Ġf jer ne Ġs var , Ġbru k Ġtom Ġliste ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġsp ors mal Ġ= Ġthis . alle Sp ors mal Og Under sp ors mal (). find Ġ{ Ġit . tag Ġ== Ġtag Ġ} ĊĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠRuntimeException (" Sp Ã¸ r sm Ã¥ l Ġik ke Ġfun net , Ġ$ tag ") ĊĊĠĠĠ Ġval Ġsp ors mal S var Ġ= Ġif Ġ( s var List e Ġ!= Ġnull ) Ġs var List e . map Ġ{ ĠS var ( null , Ġver di Ġ= Ġit ) Ġ} Ġelse ĠlistOf ( S var ( null , Ġver di Ġ= Ġs var !! )) ĊĊĠĠĠ Ġreturn Ġthis . by tt S var ( sp ors mal , Ġsp ors mal S var ) Ċ } Ċ Ċ fun Ġcopy By tt S var ( sy ke pen ge so kn ad : ĠSy ke pen ge so kn ad , Ġsp ors mal : ĠSp ors mal , Ġs var : ĠList < S var >): ĠSy ke pen ge so kn ad Ġ{ ĊĠĠĠ Ġvar Ġalle Sp ors mal Ġ= Ġsy ke pen ge so kn ad . sp ors mal ĊĠĠĠ Ġalle Sp ors mal Ġ= Ġby tt S var ( alle Sp ors mal , Ġsp ors mal , Ġs var ) ĊĠĠĠ Ġreturn Ġsy ke pen ge so kn ad . copy ( sp ors mal Ġ= Ġalle Sp ors mal ) Ċ } Ċ Ċ fun ĠSy ke pen ge so kn ad . by tt S var ( sp ors mal : ĠSp ors mal , Ġs var : ĠList < S var >): ĠSy ke pen ge so kn ad Ġ{ ĊĠĠĠ Ġreturn Ġcopy By tt S var ( this , Ġsp ors mal , Ġs var ) Ċ } Ċ Ċ private Ġfun Ġby tt S var ( alle Sp ors mal : ĠList < Sp ors mal >, Ġsp ors mal : ĠSp ors mal , Ġs var : ĠList < S var >): ĠList < Sp ors mal > Ġ{ ĊĠĠĠ Ġreturn Ġalle Sp ors mal . map Ġ{ Ġsp m Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp m . tag Ġ== Ġsp ors mal . tag Ġ-> Ġsp ors mal . copy ( s var Ġ= Ġs var ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp m . under sp ors mal . isNotEmpty () Ġ-> Ġsp m . copy ( under sp ors mal Ġ= Ġby tt S var ( sp m . under sp ors mal , Ġsp ors mal , Ġs var )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsp m ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ