From: Simon Brandhof Date: Mon, 3 Mar 2014 22:58:36 +0000 (+0100) Subject: Add WebService.Controller#isInternal() X-Git-Tag: 4.3~577 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=a303ed4ec83bd157df2ffde492000befe0e2500f;p=sonarqube.git Add WebService.Controller#isInternal() Returns true if all actions are marked as internal use --- diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/WebService.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/WebService.java index 78d0d5aad7f..ea888d0766f 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/WebService.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/WebService.java @@ -34,6 +34,7 @@ import java.util.Map; /** * Defines a web service implemented in Java (no Ruby on Rails at all). + * * @since 4.2 */ public interface WebService extends ServerExtension { @@ -147,6 +148,21 @@ public interface WebService extends ServerExtension { public Collection actions() { return actions.values(); } + + /** + * Returns true if all the actions are for internal use + * + * @see org.sonar.api.server.ws.WebService.Action#isInternal() + * @since 4.3 + */ + public boolean isInternal() { + for (Action action : actions()) { + if (!action.isInternal()) { + return false; + } + } + return true; + } } class NewAction { diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/WebServiceTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/WebServiceTest.java index a0713aa0344..4efe73e3355 100644 --- a/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/WebServiceTest.java +++ b/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/WebServiceTest.java @@ -90,6 +90,7 @@ public class WebServiceTest { assertThat(controller.description()).isEqualTo("Metrics"); assertThat(controller.since()).isEqualTo("3.2"); assertThat(controller.actions()).hasSize(2); + assertThat(controller.isInternal()).isFalse(); WebService.Action showAction = controller.action("show"); assertThat(showAction).isNotNull(); assertThat(showAction.key()).isEqualTo("show"); @@ -252,4 +253,18 @@ public class WebServiceTest { } } + @Test + public void ws_is_internal_if_all_actions_are_internal() { + new WebService() { + @Override + public void define(Context context) { + NewController newController = context.newController("api/rule"); + newController.newAction("create").setInternal(true).setHandler(mock(RequestHandler.class)); + newController.newAction("update").setInternal(true).setHandler(mock(RequestHandler.class)); + newController.done(); + } + }.define(context); + + assertThat(context.controller("api/rule").isInternal()).isTrue(); + } }