1+ package checkstyle ;
2+
3+ import sys .io .FileOutput ;
4+ import sys .io .File ;
5+
6+ class Report {
7+
8+ var staticAnalysisXML : Xml ;
9+ var reportFile : FileOutput ;
10+
11+ public function new () {}
12+
13+ @SuppressWarnings (' checkstyle:LineLength' )
14+ public function generateReport (path : String ) {
15+ staticAnalysisXML = Xml .parse (File .getContent (path ));
16+ reportFile = File .write (" CHECKS.md" , false );
17+ reportFile .writeString (" ###Report of default checks on CheckStyle library itself\n\n " );
18+ var errors = 0 ;
19+ var warnings = 0 ;
20+ var infos = 0 ;
21+ var total = 0 ;
22+ var fileName ;
23+ for (node in staticAnalysisXML .firstElement ().elementsNamed (" file" )) {
24+ var fileNode : Xml = node ;
25+ fileName = fileNode .get (" name" ).split (" /" ).join (" ." );
26+ if (fileNode .elementsNamed (" error" ).hasNext ()) Sys .println (" \033 [1mCLASS: " + fileName + " \033 [0m" );
27+ for (error in fileNode .elementsNamed (" error" )) {
28+ var errorNode : Xml = error ;
29+ switch (errorNode .get (" severity" )) {
30+ case " error" :
31+ errors ++ ;
32+ Sys .println (" \t\033 [91mError: LINE - " + errorNode .get (" line" ) + " : " + StringTools .htmlUnescape (errorNode .get (" message" )) + " \033 [0m" );
33+ reportFile .writeString (" `Error: LINE - " + errorNode .get (" line" ) + " : " + StringTools .htmlUnescape (errorNode .get (" message" )) + " `\n\n " );
34+ case " warning" :
35+ warnings ++ ;
36+ Sys .println (" \t\033 [95mWarning: LINE - " + errorNode .get (" line" ) + " : " + StringTools .htmlUnescape (errorNode .get (" message" )) + " \033 [0m" );
37+ reportFile .writeString (" `Warning: LINE - " + errorNode .get (" line" ) + " : " + StringTools .htmlUnescape (errorNode .get (" message" )) + " `\n\n " );
38+ case " info" :
39+ infos ++ ;
40+ Sys .println (" \t\033 [94mInfo: LINE - " + errorNode .get (" line" ) + " : " + StringTools .htmlUnescape (errorNode .get (" message" )) + " \033 [0m" );
41+ reportFile .writeString (" `Info: LINE - " + errorNode .get (" line" ) + " : " + StringTools .htmlUnescape (errorNode .get (" message" )) + " `\n\n " );
42+ }
43+ total ++ ;
44+ }
45+ }
46+
47+ Sys .println (" \033 [1m\n Total Issues: " + total + " (\033 [0m\033 [91mErrors: " + errors + " \033 [0m, \033 [95mWarnings: " + warnings + " \033 [0m, \033 [94mInfos: " + infos + " )\n " + " \033 [0m" );
48+
49+ reportFile .writeString (" `Total Issues: " + total + " (Errors: " + errors + " Warnings: " + warnings + " Infos: " + infos + " )`" );
50+ }
51+ }
0 commit comments