package Ġdev . fork handles . values Ċ Ċ /** Ċ Ġ* ĠReturn Ġa ĠObject / null Ġbased Ġon Ġvalidation . Ċ Ġ*/ Ċ Ċ fun Ġ< DOMAIN Ġ: ĠValue < PR IMIT IVE >, ĠPR IMIT IVE Ġ: ĠAny > ĠValue Factory < DOMAIN , ĠPR IMIT IVE >. of OrNull ( value : ĠPR IMIT IVE ) Ġ= ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġvalidate ( value ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ Ċ fun Ġ< DOMAIN Ġ: ĠValue < PR IMIT IVE >, ĠPR IMIT IVE Ġ: ĠAny > ĠValue Factory < DOMAIN , ĠPR IMIT IVE >. parse OrNull ( value : ĠString ) Ġ= ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġvalidate ( parse Fn ( value )) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ Ċ fun Ġ< DOMAIN Ġ: ĠValue < PR IMIT IVE >, ĠPR IMIT IVE Ġ: ĠAny > ĠValue Factory < DOMAIN , ĠPR IMIT IVE >. of List OrNull ( var arg Ġvalues : ĠPR IMIT IVE ) Ġ= ĊĠĠĠ Ġof List OrNull ( values . toList ()) Ċ Ċ fun Ġ< DOMAIN Ġ: ĠValue < PR IMIT IVE >, ĠPR IMIT IVE Ġ: ĠAny > ĠValue Factory < DOMAIN , ĠPR IMIT IVE >. of List OrNull ( values : ĠList < PR IMIT IVE >) Ġ= ĊĠĠĠ Ġvalues . or Null (:: of OrNull ) Ċ Ċ fun Ġ< DOMAIN Ġ: ĠValue < PR IMIT IVE >, ĠPR IMIT IVE Ġ: ĠAny > ĠValue Factory < DOMAIN , ĠPR IMIT IVE >. parse List OrNull ( values : ĠList < String >) Ġ= ĊĠĠĠ Ġvalues . or Null (:: parse OrNull ) Ċ Ċ fun Ġ< DOMAIN Ġ: ĠValue < PR IMIT IVE >, ĠPR IMIT IVE Ġ: ĠAny > ĠValue Factory < DOMAIN , ĠPR IMIT IVE >. parse List OrNull ( var arg Ġvalues : ĠString ) Ġ= ĊĠĠĠ Ġparse List OrNull ( values . toList ()) Ċ Ċ private Ġfun Ġ< IN , ĠDO MAIN Ġ: ĠValue < PR IMIT IVE >, ĠPR IMIT IVE Ġ: ĠAny > ĠList < IN >. or Null ( fn : Ġ( IN ) Ġ-> ĠDO MAIN ?) Ġ= ĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ ĠisEmpty () Ġ-> Ġempty List () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġmap NotNull ( fn ). take If ( List <* >:: isNotEmpty ) ĊĠĠĠ Ġ} Ċ