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