package Ġio . gitlab . art urb os ch . de te kt . rules . style Ċ Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Code S mell Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Config Ċ import Ġio . gitlab . art urb os ch . de te kt . api . De bt Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Entity Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Issue Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Rule Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Severity Ċ import Ġio . gitlab . art urb os ch . de te kt . rules . argument Count Ċ import Ġio . gitlab . art urb os ch . de te kt . rules . is IllegalArgumentException Ċ import Ġorg . jetbrains . kotlin . psi . Kt Block Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt Named Function Ċ import Ġorg . jetbrains . kotlin . psi . Kt Throw Expression Ċ Ċ /** Ċ Ġ* ĠKotlin Ġprovides Ġa Ġmuch Ġmore Ġconcise Ġway Ġto Ġcheck Ġpre conditions Ġthan Ġto Ġmanually Ġthrow Ġan Ċ Ġ* ĠIllegalArgumentException . Ċ Ġ* Ċ Ġ* Ġ< non comp liant > Ċ Ġ* Ġif Ġ( value Ġ== Ġnull ) Ġthrow Ġnew ĠIllegalArgumentException (" value Ġshould Ġnot Ġbe Ġnull ") Ċ Ġ* Ġif Ġ( value Ġ< Ġ 0 ) Ġthrow Ġnew ĠIllegalArgumentException (" value Ġis Ġ$ value Ġbut Ġshould Ġbe Ġat Ġleast Ġ 0 ") Ċ Ġ* Ġ</ non comp liant > Ċ Ġ* Ċ Ġ* Ġ< comp liant > Ċ Ġ* Ġrequire NotNull ( value ) Ġ{" value Ġshould Ġnot Ġbe Ġnull "} Ċ Ġ* Ġrequire ( value Ġ>= Ġ 0 ) Ġ{ Ġ" value Ġis Ġ$ value Ġbut Ġshould Ġbe Ġat Ġleast Ġ 0 " Ġ} Ċ Ġ* Ġ</ comp liant > Ċ Ġ* Ċ Ġ* Ġ@ author ĠMark us ĠSch war z Ċ Ġ*/ Ċ class ĠUse Require ( config : ĠConfig Ġ= ĠConfig . empty ) Ġ: ĠRule ( config ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġissue Ġ= ĠIssue ( ĊĠĠĠĠĠĠĠ Ġ" Use Require ", ĠSeverity . Style , ĊĠĠĠĠĠĠĠ Ġ" Use Ġrequire () Ġinstead Ġof Ġthrowing Ġan ĠIllegalArgumentException .", ĊĠĠĠĠĠĠĠ ĠDeb t . FI VE _ MIN S ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġvisit Throw Expression ( expression : ĠK t Throw Expression ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( expression . is Only Expression In Block ()) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġif Ġ( expression . is IllegalArgumentException () Ġ&& Ġexpression . argument Count Ġ< Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreport ( Code S mell ( issue , ĠEntity . from ( expression ), Ġissue . description )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠK t Throw Expression . is Only Expression In Block (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( val Ġp Ġ= Ġparent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠK t Block Expression Ġ-> Ġp . statements . size Ġ== Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠK t Named Function Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ