1 /***
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package net.sourceforge.pmd;
5
6 import java.util.Comparator;
7
8 public class RuleViolation {
9
10 public static class RuleViolationComparator implements Comparator {
11 //
12 // Changed logic of Comparator so that rules in the same file
13 // get grouped together in the output report.
14 // DDP 7/11/2002
15 //
16 public int compare(Object o1, Object o2) {
17 RuleViolation r1 = (RuleViolation) o1;
18 RuleViolation r2 = (RuleViolation) o2;
19 if (!r1.getFilename().equals(r2.getFilename())) {
20 return r1.getFilename().compareTo(r2.getFilename());
21 }
22
23 if (r1.getLine() != r2.getLine())
24 return r1.getLine() - r2.getLine();
25
26 if (r1.getDescription() != null && r2.getDescription() != null && !r1.getDescription().equals(r2.getDescription())) {
27 return r1.getDescription().compareTo(r2.getDescription());
28 }
29 // line number diff maps nicely to compare()
30 return r1.getLine() - r2.getLine();
31 }
32 }
33
34 private int line;
35 private Rule rule;
36 private String description;
37 private String filename;
38
39 public RuleViolation(Rule rule, int line, RuleContext ctx) {
40 this(rule, line, rule.getMessage(), ctx);
41 }
42
43 public RuleViolation(Rule rule, int line, String specificDescription, RuleContext ctx) {
44 this.line = line;
45 this.rule = rule;
46 this.description = specificDescription;
47 this.filename = ctx.getSourceCodeFilename();
48 }
49
50 public Rule getRule() {
51 return rule;
52 }
53
54 public int getLine() {
55 return line;
56 }
57
58 public String getDescription() {
59 return description;
60 }
61
62 public String getFilename() {
63 return filename;
64 }
65 }
This page was automatically generated by Maven