package Ġnl . ut w ente . apollo . pmd Ċ Ċ import Ġnet . sourceforge . pmd . Rule Violation Ċ import Ġnet . sourceforge . pmd . render ers . Abstract Increment ing Renderer Ċ import Ġnl . ut w ente . apollo . Metrics Ċ import Ġnl . ut w ente . apollo . pmd . oo . Oo Metrics Ċ import Ġnl . ut w ente . apollo . try Parse Description Ċ import Ġnl . ut w ente . processing . pmd . PMD Exception Ċ import Ġjava . io . Writer Ċ Ċ class ĠApollo Renderer Ġ: ĠAbstract Increment ing Renderer (" A pol lo ", Ġ"") Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġviolations Ġ= Ġmutable ListOf < Rule Violation >() ĊĠĠĠ Ġval Ġmetrics Ġ= Ġmutable Map Of < Metrics , ĠDouble >() ĊĠĠĠ Ġval Ġerrors Ġget () Ġ= Ġsuper . errors ĊĊĠĠĠ Ġoverride Ġfun Ġdefault File Extension (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ""; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠRender ers Ġare Ġrequired Ġto Ġprovide Ġa Ġwriter , Ġbut Ġwe Ġdon 't Ġwant Ġto Ġwrite ĊĠĠĠ Ġ// Ġanything Ġto Ġa Ġwrite , Ġso Ġwe Ġuse Ġthe ĠNo Writer : ĊĠĠĠ Ġ/** ĠWriter Ġthat Ġdoes Ġabsolutely Ġnothing Ġ Ġ*/ ĊĠĠĠ Ġprivate Ġinner Ġclass ĠNo Writer Ġ: ĠWriter () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġwrite ( c buf : ĠChar Array , Ġoff : ĠInt , Ġlen : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġflush () Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclose () Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . start () ĊĠĠĠĠĠĠĠ Ġthis . set Writer ( No Writer ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender File Vi olations ( new Vi olations : ĠMutable Iterator < Rule Violation >) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( new Vi olations . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġviolation Ġ= Ġnew Vi olations . next () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmetric Value Ġ= Ġtry Parse Description ( violation . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( metric Value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmetrics [ metric Value . first ] Ġ= Ġmetric Value . second ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġviolations . add ( violation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġend () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( super . errors . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠP MD Exception ( super . errors . map Ġ{ Ġit . error Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠFinal Ġcalculations ĊĠĠĠĠĠĠĠ Ġval Ġo oS mell Metric Ġ= ĠO o Metrics . S mell Metric () ĊĠĠĠĠĠĠĠ Ġmetrics [ Metrics . OO _ RAW _ S ME LL _ COUNT ] Ġ= Ġo oS mell Metric . compute For ( vi olations ) ĊĠĠĠĠĠĠĠ Ġmetrics [ Metrics . OO _ S ME LL S ] Ġ= Ġo oS mell Metric . compute Probability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmetrics [ Metrics . OO _ RAW _ CLASS _ COUNT ] !! , Ġmetrics [ Metrics . OO _ RAW _ S ME LL _ COUNT ] !! ) ĊĠĠĠ Ġ} Ċ }