diff options
author | Evgeny Mandrikov <mandrikov@gmail.com> | 2011-09-12 02:26:06 +0400 |
---|---|---|
committer | Evgeny Mandrikov <mandrikov@gmail.com> | 2011-09-12 02:26:38 +0400 |
commit | f51d791bf3c45222086f031f75cdaeae0358883a (patch) | |
tree | 1bcd9e2fce9ac17ea824e66290f2e5af1cb7f927 | |
parent | 705bb4b9ed41d36a10864d2e0365b73c669a4028 (diff) | |
download | sonarqube-f51d791bf3c45222086f031f75cdaeae0358883a.tar.gz sonarqube-f51d791bf3c45222086f031f75cdaeae0358883a.zip |
Fix violations
-rw-r--r-- | plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/DuplicationsData.java | 24 | ||||
-rw-r--r-- | sonar-duplications/src/main/java/org/sonar/duplications/cpd/Match.java | 8 |
2 files changed, 19 insertions, 13 deletions
diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/DuplicationsData.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/DuplicationsData.java index 1fc00423f99..55072da43b4 100644 --- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/DuplicationsData.java +++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/DuplicationsData.java @@ -21,6 +21,7 @@ package org.sonar.plugins.cpd; import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -67,7 +68,7 @@ public class DuplicationsData { } private String getDuplicationXMLData() { - Collections.sort(duplicationXMLEntries); + Collections.sort(duplicationXMLEntries, COMPARATOR); StringBuilder duplicationXML = new StringBuilder("<duplications>"); for (XmlEntry xmlEntry : duplicationXMLEntries) { duplicationXML.append(xmlEntry.toString()); @@ -76,10 +77,16 @@ public class DuplicationsData { return duplicationXML.toString(); } - /** - * Note: this class has a natural ordering that is inconsistent with equals. - */ - private static final class XmlEntry implements Comparable<XmlEntry> { + private static final Comparator<XmlEntry> COMPARATOR = new Comparator<XmlEntry>() { + public int compare(XmlEntry o1, XmlEntry o2) { + if (o1.startLine == o2.startLine) { + return o1.lines - o2.lines; + } + return o1.startLine - o2.startLine; + } + }; + + private static final class XmlEntry { private String target; private int targetStartLine; private int startLine; @@ -100,13 +107,6 @@ public class DuplicationsData { .append("\" target-resource=\"").append(target).append("\"/>") .toString(); } - - public int compareTo(XmlEntry o) { - if (startLine == o.startLine) { - return lines - o.lines; - } - return startLine - o.startLine; - } } } diff --git a/sonar-duplications/src/main/java/org/sonar/duplications/cpd/Match.java b/sonar-duplications/src/main/java/org/sonar/duplications/cpd/Match.java index 0ec9a9ad72c..2541b814d2c 100644 --- a/sonar-duplications/src/main/java/org/sonar/duplications/cpd/Match.java +++ b/sonar-duplications/src/main/java/org/sonar/duplications/cpd/Match.java @@ -89,11 +89,16 @@ public class Match implements Comparable<Match> { second = m2.getIndex(); } + @Override public int hashCode() { return first + 37 * second; } + @Override public boolean equals(Object other) { + if (!(other instanceof MatchCode)) { + return false; + } MatchCode mc = (MatchCode) other; return mc.first == first && mc.second == second; } @@ -145,7 +150,7 @@ public class Match implements Comparable<Match> { } public int compareTo(Match other) { - int diff = other.getTokenCount() - getTokenCount(); + int diff = other.getTokenCount() - getTokenCount(); // NOSONAR Bad practice - Class defines compareTo(...) and uses Object.equals() if (diff != 0) { return diff; } @@ -160,6 +165,7 @@ public class Match implements Comparable<Match> { return marks[1]; } + @Override public String toString() { return "Match: " + EOL + "tokenCount = " + tokenCount + EOL + "marks = " + markSet.size(); } |