diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2014-02-04 17:59:59 +0100 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2014-02-04 18:00:18 +0100 |
commit | a5c12366c3abe412b35682d1f406544dac36711b (patch) | |
tree | c8b1fcb339c7d53fdbc8d6660d546a7d1485eaf2 /sonar-deprecated/src | |
parent | 5c8253965ec61f94ba0d8db80ad8478d7af2700b (diff) | |
download | sonarqube-a5c12366c3abe412b35682d1f406544dac36711b.tar.gz sonarqube-a5c12366c3abe412b35682d1f406544dac36711b.zip |
SONAR-926 move org.sonar.api.resources.Method to sonar-deprecated
Diffstat (limited to 'sonar-deprecated/src')
-rw-r--r-- | sonar-deprecated/src/main/java/org/sonar/api/resources/Method.java | 108 | ||||
-rw-r--r-- | sonar-deprecated/src/test/java/org/sonar/api/resources/MethodTest.java | 46 |
2 files changed, 154 insertions, 0 deletions
diff --git a/sonar-deprecated/src/main/java/org/sonar/api/resources/Method.java b/sonar-deprecated/src/main/java/org/sonar/api/resources/Method.java new file mode 100644 index 00000000000..90b82792130 --- /dev/null +++ b/sonar-deprecated/src/main/java/org/sonar/api/resources/Method.java @@ -0,0 +1,108 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2013 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube 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. + * + * SonarQube 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 this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.api.resources; + +/** + * @deprecated in 4.2. Only file system components are managed by SQ core (files/directories). + */ +@Deprecated +public class Method extends Resource { + + public static final String SCOPE = Scopes.BLOCK_UNIT; + + protected String qualifier; + protected Language language; + + protected Method(String key, String qualifier, Language language) { + setKey(key); + this.qualifier = qualifier; + this.language = language; + } + + @Override + public String getName() { + return getKey(); + } + + @Override + public String getLongName() { + return getKey(); + } + + @Override + public String getDescription() { + return null; + } + + @Override + public final Language getLanguage() { + return language; + } + + @Override + public final String getScope() { + return SCOPE; + } + + @Override + public final String getQualifier() { + return qualifier; + } + + @Override + public Resource getParent() { + return null; + } + + @Override + public final boolean matchFilePattern(String antPattern) { + return false; + } + + @Override + public final boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof Method)) { + return false; + } + Method method = (Method) o; + if (!getKey().equals(method.getKey())) { + return false; + } + if (!qualifier.equals(method.qualifier)) { + return false; + } + return true; + } + + @Override + public final int hashCode() { + int result = super.hashCode(); + result = 31 * result + qualifier.hashCode(); + result = 31 * result + getKey().hashCode(); + return result; + } + + public static Method createMethod(String key, Language language) { + return new Method(key, Qualifiers.METHOD, language); + } +} diff --git a/sonar-deprecated/src/test/java/org/sonar/api/resources/MethodTest.java b/sonar-deprecated/src/test/java/org/sonar/api/resources/MethodTest.java new file mode 100644 index 00000000000..f9e18d71e6d --- /dev/null +++ b/sonar-deprecated/src/test/java/org/sonar/api/resources/MethodTest.java @@ -0,0 +1,46 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2013 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube 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. + * + * SonarQube 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 this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +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); + } + } +} |