]> source.dussan.org Git - sonarqube.git/commitdiff
Pull define(...) method into a dedicated interface
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Thu, 2 Apr 2015 10:37:15 +0000 (12:37 +0200)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Fri, 3 Apr 2015 07:17:48 +0000 (09:17 +0200)
server/sonar-server/src/main/java/org/sonar/server/dashboard/ws/DashboardsAction.java
server/sonar-server/src/main/java/org/sonar/server/issue/ws/BaseIssuesWsAction.java
server/sonar-server/src/main/java/org/sonar/server/platform/ws/SystemWsAction.java
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/BaseQProfileWsAction.java
server/sonar-server/src/main/java/org/sonar/server/rule/ws/RulesAction.java
server/sonar-server/src/main/java/org/sonar/server/source/ws/SourcesAction.java
sonar-plugin-api/src/main/java/org/sonar/api/server/ws/Definable.java [new file with mode: 0644]
sonar-plugin-api/src/main/java/org/sonar/api/server/ws/WebService.java

index 4e9c981c8307d3253d1c59c82c82f413e50fbe53..e14ccc782cbad06d3dddee5399cba6b75fe38dc9 100644 (file)
  */
 package org.sonar.server.dashboard.ws;
 
+import org.sonar.api.server.ws.Definable;
 import org.sonar.api.server.ws.RequestHandler;
 import org.sonar.api.server.ws.WebService;
 
-public interface DashboardsAction extends RequestHandler {
+public interface DashboardsAction extends RequestHandler, Definable<WebService.NewController> {
 
-  void define(WebService.NewController controller);
+  // Marker interface
 
 }
index 051a34613c02a07dff064bea5969a4a385df1568..6b601b9a1923a1672452cfc42bf6e3e78e1aa680 100644 (file)
  */
 package org.sonar.server.issue.ws;
 
+import org.sonar.api.server.ws.Definable;
 import org.sonar.api.server.ws.RequestHandler;
 import org.sonar.api.server.ws.WebService;
 
-interface BaseIssuesWsAction extends RequestHandler {
+interface BaseIssuesWsAction extends RequestHandler, Definable<WebService.NewController> {
 
-  void define(WebService.NewController controller);
+  // Marker interface
 
 }
 
index 4bf39443dd5668862ddf22ea5f3e59ad66a419d1..c78a3d7651ebcab982924ccccbffe1b81622ff49 100644 (file)
 
 package org.sonar.server.platform.ws;
 
+import org.sonar.api.server.ws.Definable;
 import org.sonar.api.server.ws.RequestHandler;
 import org.sonar.api.server.ws.WebService;
 
-public interface SystemWsAction extends RequestHandler {
+public interface SystemWsAction extends RequestHandler, Definable<WebService.NewController> {
 
-  void define(WebService.NewController controller);
+  // Marker interface
 }
index 94d6cc05cd9345bb48ee349c64684e7ad68eccbb..54c4e1a210fa87b6cf155ab75b243f267670a759 100644 (file)
  */
 package org.sonar.server.qualityprofile.ws;
 
+import org.sonar.api.server.ws.Definable;
 import org.sonar.api.server.ws.RequestHandler;
 import org.sonar.api.server.ws.WebService;
 
 /**
  * Marker interface for quality profile related web service end points
  */
-public interface BaseQProfileWsAction extends RequestHandler {
+public interface BaseQProfileWsAction extends RequestHandler, Definable<WebService.NewController> {
 
-  void define(WebService.NewController controller);
+  // Marker interface
 }
index ef563028c02aac9e97f350802e52e59bb45f39c3..6d612f247fa715918bd2af9577316470a62ea601 100644 (file)
  */
 package org.sonar.server.rule.ws;
 
+import org.sonar.api.server.ws.Definable;
 import org.sonar.api.server.ws.RequestHandler;
 import org.sonar.api.server.ws.WebService;
 
 /**
  * Marker interface for coding rule related actions
- * @author jblievremont
  *
  */
-interface RulesAction extends RequestHandler {
+interface RulesAction extends RequestHandler, Definable<WebService.NewController> {
 
-  void define(WebService.NewController controller);
+  // Marker interface
 }
index 6561d6018664b7861f1b4bdf6a3455e0df12dcf4..4a2de04d3672c7eb6d4488c92c7e49d3b4e1c4af 100644 (file)
 
 package org.sonar.server.source.ws;
 
+import org.sonar.api.server.ws.Definable;
 import org.sonar.api.server.ws.RequestHandler;
 import org.sonar.api.server.ws.WebService;
 
-public interface SourcesAction extends RequestHandler {
-
-  void define(WebService.NewController controller);
+public interface SourcesAction extends RequestHandler, Definable<WebService.NewController> {
 
+  // Marker interface
 }
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/Definable.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/Definable.java
new file mode 100644 (file)
index 0000000..335b3d6
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2014 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.server.ws;
+
+public interface Definable<T> {
+
+  void define(T context);
+}
index faa0f05fb56f6f6241e0508f3d4b1661dc0495be..20e7c97fae45e086d3a45adab7c8316ee0af14bd 100644 (file)
@@ -35,11 +35,7 @@ import javax.annotation.concurrent.Immutable;
 
 import java.io.IOException;
 import java.net.URL;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 /**
  * Defines a web service. Note that contrary to the deprecated {@link org.sonar.api.web.Webservice}
@@ -100,7 +96,7 @@ import java.util.Set;
  *
  * @since 4.2
  */
-public interface WebService extends ServerExtension {
+public interface WebService extends ServerExtension, Definable<WebService.Context> {
 
   class Context {
     private final Map<String, Controller> controllers = Maps.newHashMap();