aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsimonbrandhof <simon.brandhof@gmail.com>2011-02-14 15:37:56 +0100
committersimonbrandhof <simon.brandhof@gmail.com>2011-02-14 15:38:25 +0100
commit60e2dc0e768ac74bfd8bdedaa90157e1082c05b0 (patch)
treed96868c81c6038557e5a2b4930cb285ee05bf805
parente4a24c9ae7960c079d6463c67a9c6b2ce3c53dec (diff)
downloadsonarqube-60e2dc0e768ac74bfd8bdedaa90157e1082c05b0.tar.gz
sonarqube-60e2dc0e768ac74bfd8bdedaa90157e1082c05b0.zip
API: rename BlockUnit to Method
-rw-r--r--sonar-java-api/src/main/java/org/sonar/java/api/JavaMethod.java16
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/resources/Method.java (renamed from sonar-plugin-api/src/main/java/org/sonar/api/resources/BlockUnit.java)24
-rw-r--r--sonar-plugin-api/src/test/java/org/sonar/api/resources/MethodTest.java46
3 files changed, 59 insertions, 27 deletions
diff --git a/sonar-java-api/src/main/java/org/sonar/java/api/JavaMethod.java b/sonar-java-api/src/main/java/org/sonar/java/api/JavaMethod.java
index 65c478a49b7..6b1d9eebbd5 100644
--- a/sonar-java-api/src/main/java/org/sonar/java/api/JavaMethod.java
+++ b/sonar-java-api/src/main/java/org/sonar/java/api/JavaMethod.java
@@ -25,7 +25,7 @@ import org.sonar.api.resources.*;
/**
* @since 2.6
*/
-public final class JavaMethod extends BlockUnit {
+public final class JavaMethod extends Method {
public static final String QUALIFIER = Qualifiers.METHOD;
@@ -92,20 +92,6 @@ public final class JavaMethod extends BlockUnit {
}
@Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- JavaMethod that = (JavaMethod) o;
- return getKey().equals(that.getKey());
- }
-
- @Override
- public int hashCode() {
- return getKey().hashCode();
- }
-
- @Override
public String toString() {
return getKey();
}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/resources/BlockUnit.java b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Method.java
index 38cf6bc2b72..bda8e050c81 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/resources/BlockUnit.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Method.java
@@ -19,14 +19,14 @@
*/
package org.sonar.api.resources;
-public class BlockUnit extends Resource {
+public class Method extends Resource {
public static final String SCOPE = Scopes.BLOCK_UNIT;
protected String qualifier;
protected Language language;
- protected BlockUnit(String key, String qualifier, Language language) {
+ protected Method(String key, String qualifier, Language language) {
setKey(key);
this.qualifier = qualifier;
this.language = language;
@@ -73,32 +73,32 @@ public class BlockUnit extends Resource {
}
@Override
- public boolean equals(Object o) {
+ public final boolean equals(Object o) {
if (this == o) {
return true;
}
- if (o == null || getClass() != o.getClass()) {
+ if (!(o instanceof Method)) {
return false;
}
- if (!super.equals(o)) {
+ Method method = (Method) o;
+ if (!getKey().equals(method.getKey())) {
return false;
}
- BlockUnit blockUnit = (BlockUnit) o;
- if (!qualifier.equals(blockUnit.qualifier)) {
+ if (!qualifier.equals(method.qualifier)) {
return false;
}
- return getKey().equals(blockUnit.getKey());
+ return true;
}
@Override
- public int hashCode() {
+ public final int hashCode() {
int result = super.hashCode();
- result = 31 * result + getKey().hashCode();
result = 31 * result + qualifier.hashCode();
+ result = 31 * result + getKey().hashCode();
return result;
}
- public static BlockUnit createMethod(String key, Language language) {
- return new BlockUnit(key, Qualifiers.METHOD, language);
+ public static Method createMethod(String key, Language language) {
+ return new Method(key, Qualifiers.METHOD, language);
}
}
diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/resources/MethodTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/resources/MethodTest.java
new file mode 100644
index 00000000000..406e2f7b7b0
--- /dev/null
+++ b/sonar-plugin-api/src/test/java/org/sonar/api/resources/MethodTest.java
@@ -0,0 +1,46 @@
+/*
+ * Sonar, open source software quality management tool.
+ * Copyright (C) 2008-2011 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * Sonar is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * Sonar is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Sonar; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
+ */
+package org.sonar.api.resources;
+
+import org.junit.Test;
+
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+
+public class MethodTest {
+
+ @Test
+ public void shouldAcceptOverridding() {
+ Method method = Method.createMethod("Foo.foo()", Java.INSTANCE);
+ Method fakeMethod = new FakeMethod("Foo.foo()");
+
+ assertThat(method.equals(fakeMethod), is(true));
+ assertThat(fakeMethod.equals(method), is(true));
+
+ assertThat(method.hashCode(), is(fakeMethod.hashCode()));
+ assertThat(fakeMethod.hashCode(), is(method.hashCode()));
+ }
+
+ static class FakeMethod extends Method {
+ protected FakeMethod(String key) {
+ super(key, Qualifiers.METHOD, Java.INSTANCE);
+ }
+ }
+}