1 23 package org.hammurapi.inspectors; 24 25 import java.util.Collection ; 26 27 import org.hammurapi.HammurapiException; 28 import org.hammurapi.InspectorBase; 29 import org.hammurapi.results.DetailedResults; 30 import org.hammurapi.results.ResultsFactory; 31 32 import com.pavelvlasov.jsel.CompilationUnit; 33 import com.pavelvlasov.jsel.JselException; 34 import com.pavelvlasov.jsel.TypeDefinition; 35 import com.pavelvlasov.review.SourceMarker; 36 37 38 44 public class PrioritizingInspector extends InspectorBase { 45 private int clients; 46 private boolean disabled; 47 48 public void visit(CompilationUnit cu) { 49 clients=0; 50 } 51 52 public void visit(TypeDefinition td) throws JselException { 53 if (!disabled) { 54 Collection cc = td.getClients(); 55 if (cc==null) { 56 disabled=true; 58 } else { 59 clients+=cc.size(); 60 } 61 } 62 } 63 64 69 public void leave(CompilationUnit cu) throws HammurapiException { 70 if (!disabled) { 71 final SourceMarker sm=context.detach(cu); 72 final DetailedResults result = ResultsFactory.getThreadResults(); 73 74 ResultsFactory.getInstance().execute(new ResultsFactory.Task() { 75 76 public void execute() throws HammurapiException { 77 result.addMetric(sm, "Work order", 100.0/((Math.log(clients+1)+1)*result.getViolationLevel()+1)); 78 } 79 80 }); 81 } 82 } 83 } 84 | Popular Tags |