1 package net.sourceforge.pmd;
2
3 import net.sourceforge.pmd.stat.Metric;
4
5 import java.util.ArrayList;
6 import java.util.HashSet;
7 import java.util.Iterator;
8 import java.util.List;
9 import java.util.Set;
10 import java.util.TreeSet;
11
12 public class Report {
13
14 public static class ProcessingError {
15 private String msg;
16 private String file;
17
18 public ProcessingError(String msg, String file) {
19 this.msg = msg;
20 this.file = file;
21 }
22
23 public String getMsg() {
24 return msg;
25 }
26
27 public String getFile() {
28 return file;
29 }
30 }
31
32 private Set violations = new TreeSet(new RuleViolation.RuleViolationComparator());
33 private Set metrics = new HashSet();
34 private List listeners = new ArrayList();
35 private List errors = new ArrayList();
36
37 public void addListener(ReportListener listener) {
38 listeners.add(listener);
39 }
40
41 public void addRuleViolation(RuleViolation violation) {
42 violations.add(violation);
43 for (Iterator i = listeners.iterator(); i.hasNext();) {
44 ReportListener listener = (ReportListener) i.next();
45 listener.ruleViolationAdded(violation);
46 }
47 }
48
49 public void addMetric(Metric metric) {
50 metrics.add(metric);
51 for (Iterator i = listeners.iterator(); i.hasNext();) {
52 ReportListener listener = (ReportListener) i.next();
53 listener.metricAdded(metric);
54 }
55 }
56
57 public void addError(ProcessingError error) {
58 errors.add(error);
59 }
60
61 public boolean hasMetrics() {
62 return !metrics.isEmpty();
63 }
64
65 public Iterator metrics() {
66 return metrics.iterator();
67 }
68
69 public boolean isEmpty() {
70 return violations.isEmpty();
71 }
72
73 public Iterator iterator() {
74 return violations.iterator();
75 }
76
77 public Iterator errors() {
78 return errors.iterator();
79 }
80
81 public int size() {
82 return violations.size();
83 }
84
85 }
This page was automatically generated by Maven