package Ġde . mus ich in . kt lint . reporter . json lines Ċ Ċ import Ġcom . p interest . kt lint . core . Lint Error Ċ import Ġcom . p interest . kt lint . core . Reporter Ċ import Ġjava . io . Print Stream Ċ Ċ class ĠJson Lines Reporter ( ĊĠĠĠ Ġprivate Ġval Ġout : ĠPrint Stream , Ċ ) Ġ: ĠReport er Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Lint Error ( file : ĠString , Ġerr : ĠL int Error , Ġcorrected : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( corrected ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġline Ġ= Ġerr . line ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Ġ= Ġerr . col ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġerr . detail ĊĠĠĠĠĠĠĠ Ġval Ġrule Ġ= Ġerr . rule Id ĊĠĠĠĠĠĠĠ Ġout . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("{ \" file \": Ġ\" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . forEach Ġ{ Ġchar Ġ-> Ġprint ( char . escape ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("\ ", Ġ\" line \": Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( line ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint (", Ġ\" column \": Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( column ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint (", Ġ\" message \": Ġ\" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . forEach Ġ{ Ġchar Ġ-> Ġprint ( char . escape ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("\ ", Ġ\" rule \": Ġ\" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( rule ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ("\" }\ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠChar . escape (): ĠString Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ'\" ' Ġ-> Ġ"\\ \"" ĊĠĠĠĠĠĠĠ Ġ'\\ ' Ġ-> Ġ"\\ \ \" ĊĠĠĠĠĠĠĠ Ġ'/' Ġ-> Ġ"\\ /" ĊĠĠĠĠĠĠĠ Ġ'\ b ' Ġ-> Ġ"\\ b " ĊĠĠĠĠĠĠĠ Ġ'\ u 0 0 0 C ' Ġ-> Ġ"\\ f " ĊĠĠĠĠĠĠĠ Ġ'\ n ' Ġ-> Ġ"\\ n " ĊĠĠĠĠĠĠĠ Ġ'\ r ' Ġ-> Ġ"\\ r " ĊĠĠĠĠĠĠĠ Ġ'\ t ' Ġ-> Ġ"\\ t " ĊĠĠĠĠĠĠĠ Ġin Ġ'\ u 0 0 0 0 ' .. '\ u 0 0 1 F ' Ġ-> Ġescape Code () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠtoString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠChar . escape Code (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhex Ġ= Ġcode . toString ( 1 6 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("\\ u ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 4 Ġ- Ġhex . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( hex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ