package Ġnet . mi lo sv asic . factory . configuration . definition Ċ Ċ import Ġnet . mi lo sv asic . factory . common . validation . Validation Ċ import Ġnet . mi lo sv asic . factory . validation . Validator Ċ Ċ class ĠDefinition Validator Ġ: ĠValidation < String > Ġ{ ĊĊĠĠĠ Ġ@ Throws ( IllegalArgumentException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġvalidate ( var arg Ġwhat : ĠString ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ ĠValidator . Arguments . validate Single ( what ) ĊĠĠĠĠĠĠĠ Ġval Ġparam Ġ= Ġwhat [ 0 ] ĊĠĠĠĠĠĠĠ Ġval Ġinvalid Definition Error Ġ= ĠIllegalArgumentException (" Invalid Ġdefinition : Ġ$ param ") ĊĠĠĠĠĠĠĠ Ġif Ġ( param Ġ!= ĠDefinition . CURRENT _ DEFINITION ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! param . contains ( Definition . VERSION _ SEPARATOR )) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġinvalid Definition Error ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsepar ators Ġ= Ġparam . chars (). filter Ġ{ Ġvalue Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . to Char (). toString () Ġ== ĠDefinition . PATH _ SEPARATOR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. count (). toInt () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( separ ators Ġ!= Ġ 2 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġinvalid Definition Error ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ }