package Ġnet . tw ister rob . gradle . quality . report . html Ċ Ċ import Ġnet . tw ister rob . gradle . quality . Violation Ċ import Ġnet . tw ister rob . gradle . quality . Vi olations Ċ Ċ internal Ġtype alias ĠCategory Ġ= ĠString ? Ċ internal Ġtype alias ĠReport er Ġ= ĠString Ċ Ċ @ Suppress (" USE LESS _ CAST ") Ġ// Ġcast s Ġare Ġuseful Ġto Ġconvert ĠString Ġto Ġtype alias Ċ internal Ġfun Ġgroup ( violation ss : ĠList < Vi olations >): ĠMap < Category , ĠMap < Reporter , ĠList < Violation >>> Ġ{ Ċ ĉ val Ġall Vi olations Ġ= Ġviolation ss . flatMap Ġ{ Ġ( it . vi olations Ġ?: Ġempty List ()) Ġ} ĊĊ ĉ @ Suppress (" Un necessary Variable ") Ġ// ĠREPORT Ġbroken Ġrefactor : Ġin lining Ġthis Ġvariable Ġbreaks Ġcode Ċ ĉ val Ġgroup Ġ= Ġall Vi olations Ċĉ ĉ . groupBy Ġ{ Ġit . category Ġas ĠCategory Ġ} Ċĉ ĉ . to Sorted Map ( null s Last ( compare By Ġ{ Ġit Ġ})) Ċĉ ĉ . map Values Ġ{ Ġ(_, Ġviolations ) Ġ-> Ċĉĉ ĉ vi olations Ċĉĉĉ ĉ . groupBy Ġ{ Ġit . source . reporter Ġas ĠReport er Ġ} Ċĉĉĉ ĉ . to Sorted Map ( compare By Ġ{ Ġit Ġ}) Ċĉĉĉ ĉ . map Values Ġ{ Ġ(_, Ġviolations ) Ġ-> Ċĉĉĉĉ ĉ vi olations . sorted With ( Ċĉĉĉĉĉ ĉ compare By < Violation > Ġ{ Ġit . rule Ġ} Ċĉĉĉĉĉĉ ĉ . then By Ġ{ Ġit . location . file Ġ} Ċĉĉĉĉĉĉ ĉ . then By Ġ{ Ġit . location . start Line Ġ} Ċĉĉĉĉĉĉ ĉ . then By Ġ{ Ġit . location . column Ġ} Ċĉĉĉĉ ĉ ) Ċĉĉĉ ĉ } Ċĉ ĉ } Ċ ĉ return Ġgroup Ċ } Ċ