package Ġapp . ath ome . rules Ċ Ċ import Ġio . gitlab . art urb os ch . de te kt . api .* Ċ import Ġorg . jetbrains . kotlin . psi . Kt Class Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . get Super Names Ċ Ċ class ĠViewModel Naming Rule Ġ: ĠRule () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠVIEW _ MODEL Ġ= Ġ" ViewModel " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDESCRIPTION Ġ= Ġ" ViewModel Ġnames Ġshould Ġend Ġwith ĠViewModel " ĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠgetMessage ( name : ĠString ?) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" The ĠViewModel Ġclass Ġname Ġ$ name Ġshould Ġhave Ġbeen Ġ${ name } ViewModel ." ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġissue Ġ= ĠIssue ( ĊĠĠĠĠĠĠĠ Ġjava Class . simple Name , ĊĠĠĠĠĠĠĠ ĠSeverity . Code S mell , ĊĠĠĠĠĠĠĠ ĠDESCRIPTION , ĊĠĠĠĠĠĠĠ ĠDeb t . FI VE _ MIN S ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġvisit Class ( klass : ĠK t Class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtake Unless Ġ{ Ġklass . get Super Names (). find Ġ{ Ġit Ġ== ĠVIEW _ MODEL Ġ}. isNull Or Blank () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . take If Ġ{ Ġklass . name ?. endsWith ( VIEW _ MODEL ) Ġ== Ġfalse Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . report ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCode S mell ( issue , ĠEntity . from ( klass ), ĠgetMessage ( klass . name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ