]> source.dussan.org Git - sonarqube.git/commitdiff
[NO-JIRA] Remove reported code smells about switch statements
authorMatteo Mara <matteo.mara@sonarsource.com>
Fri, 6 Jan 2023 11:59:21 +0000 (12:59 +0100)
committersonartech <sonartech@sonarsource.com>
Tue, 10 Jan 2023 20:03:01 +0000 (20:03 +0000)
26 files changed:
server/sonar-auth-github/src/main/java/org/sonar/auth/github/GitHubRestClient.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/MeasureToMeasureDto.java
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/def/BlobColumnDef.java
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/def/BooleanColumnDef.java
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/def/ClobColumnDef.java
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/def/DecimalColumnDef.java
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/def/IntegerColumnDef.java
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/def/TimestampColumnDef.java
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/def/TinyIntColumnDef.java
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/sql/DropConstraintBuilder.java
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/sql/DropTableBuilder.java
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/sql/RenameTableBuilder.java
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/step/DropIndexBuilder.java
server/sonar-main/src/main/java/org/sonar/application/SchedulerImpl.java
server/sonar-server-common/src/main/java/org/sonar/server/component/index/ComponentIndexer.java
server/sonar-server-common/src/main/java/org/sonar/server/issue/index/IssueIndexer.java
server/sonar-server-common/src/main/java/org/sonar/server/measure/index/ProjectMeasuresIndexer.java
server/sonar-server-common/src/main/java/org/sonar/server/qualitygate/ConditionEvaluator.java
server/sonar-server-common/src/main/java/org/sonar/server/webhook/WebhookCallerImpl.java
server/sonar-webserver-es/src/main/java/org/sonar/server/issue/index/IssueQueryFactory.java
server/sonar-webserver-es/src/main/java/org/sonar/server/permission/index/PermissionIndexer.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/component/ws/SearchProjectsAction.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/ws/MeasureValueFormatter.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/CurrentAction.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/SetHomepageAction.java
server/sonar-webserver/src/main/java/org/sonar/server/app/EmbeddedTomcat.java

index 9d67ce4f70526ef4550b177598a76b4ebc92db19..580fc46565f57e3408fe043dca2ab0a5efaeea0d 100644 (file)
@@ -83,9 +83,7 @@ public class GitHubRestClient {
     Response response = scribe.execute(request);
     int code = response.getCode();
     switch (code) {
-      case HttpURLConnection.HTTP_MOVED_TEMP:
-      case HttpURLConnection.HTTP_NOT_FOUND:
-      case HttpURLConnection.HTTP_NO_CONTENT:
+      case HttpURLConnection.HTTP_MOVED_TEMP, HttpURLConnection.HTTP_NOT_FOUND, HttpURLConnection.HTTP_NO_CONTENT:
         LOGGER.trace("Orgs response received : {}", code);
         return code == HttpURLConnection.HTTP_NO_CONTENT;
       default:
index 8779bd95cb2b25768fffb19cccf91a8720c3f644..b417944d44056e88faf271d41c3416dfafebc02f 100644 (file)
@@ -67,11 +67,7 @@ public class MeasureToMeasureDto {
 
   private static String data(Measure in) {
     switch (in.getValueType()) {
-      case NO_VALUE:
-      case BOOLEAN:
-      case INT:
-      case LONG:
-      case DOUBLE:
+      case NO_VALUE, BOOLEAN, INT, LONG, DOUBLE:
         return in.getData();
       case STRING:
         return in.getStringValue();
@@ -88,20 +84,12 @@ public class MeasureToMeasureDto {
    */
   @CheckForNull
   private static Double valueAsDouble(Measure measure) {
-    switch (measure.getValueType()) {
-      case BOOLEAN:
-        return measure.getBooleanValue() ? 1.0D : 0.0D;
-      case INT:
-        return (double) measure.getIntValue();
-      case LONG:
-        return (double) measure.getLongValue();
-      case DOUBLE:
-        return measure.getDoubleValue();
-      case NO_VALUE:
-      case STRING:
-      case LEVEL:
-      default:
-        return null;
-    }
+    return switch (measure.getValueType()) {
+      case BOOLEAN -> measure.getBooleanValue() ? 1.0D : 0.0D;
+      case INT -> (double) measure.getIntValue();
+      case LONG -> (double) measure.getLongValue();
+      case DOUBLE -> measure.getDoubleValue();
+      default -> null;
+    };
   }
 }
index f26640bb7679b35dd59e8bc4826fd261d0c9ca34..a47e58666a48d0b765b692484b54a8e3fb56a429 100644 (file)
@@ -37,17 +37,12 @@ public class BlobColumnDef extends AbstractColumnDef {
 
   @Override
   public String generateSqlType(Dialect dialect) {
-    switch (dialect.getId()) {
-      case MsSql.ID:
-        return "VARBINARY(MAX)";
-      case Oracle.ID:
-      case H2.ID:
-        return "BLOB";
-      case PostgreSql.ID:
-        return "BYTEA";
-      default:
-        throw new IllegalArgumentException("Unsupported dialect id " + dialect.getId());
-    }
+    return switch (dialect.getId()) {
+      case MsSql.ID -> "VARBINARY(MAX)";
+      case Oracle.ID, H2.ID -> "BLOB";
+      case PostgreSql.ID -> "BYTEA";
+      default -> throw new IllegalArgumentException("Unsupported dialect id " + dialect.getId());
+    };
   }
 
   public static Builder newBlobColumnDefBuilder() {
index cc0d302b4a57b0335bb3c198a6e1b7e656e88f4f..057ef1a1df6281296219ec599337bbf8b8c0c378 100644 (file)
@@ -50,8 +50,7 @@ public class BooleanColumnDef extends AbstractColumnDef {
   @Override
   public String generateSqlType(Dialect dialect) {
     switch (dialect.getId()) {
-      case PostgreSql.ID:
-      case H2.ID:
+      case PostgreSql.ID, H2.ID:
         return "BOOLEAN";
       case Oracle.ID:
         return "NUMBER(1)";
index 52edf32821b69b86a4c43c9a547b278087c37cc2..d5015e1e477c79d9c7893d955dd4e2a48ba007c7 100644 (file)
@@ -47,8 +47,7 @@ public class ClobColumnDef extends AbstractColumnDef {
     switch (dialect.getId()) {
       case MsSql.ID:
         return "NVARCHAR (MAX)";
-      case Oracle.ID:
-      case H2.ID:
+      case Oracle.ID, H2.ID:
         return "CLOB";
       case PostgreSql.ID:
         return "TEXT";
index f2ebd095a08bd248f9d3a50fcd49758b165aed3f..2dd8e7002fec8b2fd91a74a1df40e02b3740ec1d 100644 (file)
@@ -58,17 +58,12 @@ public class DecimalColumnDef extends AbstractColumnDef {
 
   @Override
   public String generateSqlType(Dialect dialect) {
-    switch (dialect.getId()) {
-      case PostgreSql.ID:
-      case Oracle.ID:
-        return String.format("NUMERIC (%s,%s)", precision, scale);
-      case MsSql.ID:
-        return String.format("DECIMAL (%s,%s)", precision, scale);
-      case H2.ID:
-        return "DOUBLE";
-      default:
-        throw new UnsupportedOperationException(String.format("Unknown dialect '%s'", dialect.getId()));
-    }
+    return switch (dialect.getId()) {
+      case PostgreSql.ID, Oracle.ID -> String.format("NUMERIC (%s,%s)", precision, scale);
+      case MsSql.ID -> String.format("DECIMAL (%s,%s)", precision, scale);
+      case H2.ID -> "DOUBLE";
+      default -> throw new UnsupportedOperationException(String.format("Unknown dialect '%s'", dialect.getId()));
+    };
   }
 
   public static class Builder {
index 128c2ce9800aa79a79a7f8b5c5fac2c10593367b..3242e155334dc3c9750323c04d7defb4877058d9 100644 (file)
@@ -43,17 +43,12 @@ public class IntegerColumnDef extends AbstractColumnDef {
 
   @Override
   public String generateSqlType(Dialect dialect) {
-    switch (dialect.getId()) {
-      case PostgreSql.ID:
-      case H2.ID:
-        return "INTEGER";
-      case MsSql.ID:
-        return "INT";
-      case Oracle.ID:
-        return "NUMBER(38,0)";
-      default:
-        throw new IllegalArgumentException("Unsupported dialect id " + dialect.getId());
-    }
+    return switch (dialect.getId()) {
+      case PostgreSql.ID, H2.ID -> "INTEGER";
+      case MsSql.ID -> "INT";
+      case Oracle.ID -> "NUMBER(38,0)";
+      default -> throw new IllegalArgumentException("Unsupported dialect id " + dialect.getId());
+    };
   }
 
   public static class Builder {
index 4074b2e5f99b57e77654d719e1be5e03b423de87..18372dc634a278ff33e4dfa7b83a85048875a45c 100644 (file)
@@ -48,17 +48,12 @@ public class TimestampColumnDef extends AbstractColumnDef {
 
   @Override
   public String generateSqlType(Dialect dialect) {
-    switch (dialect.getId()) {
-      case MsSql.ID:
-        return "DATETIME";
-      case Oracle.ID:
-        return "TIMESTAMP (6)";
-      case H2.ID:
-      case PostgreSql.ID:
-        return "TIMESTAMP";
-      default:
-        throw new IllegalArgumentException("Unsupported dialect id " + dialect.getId());
-    }
+    return switch (dialect.getId()) {
+      case MsSql.ID -> "DATETIME";
+      case Oracle.ID -> "TIMESTAMP (6)";
+      case H2.ID, PostgreSql.ID -> "TIMESTAMP";
+      default -> throw new IllegalArgumentException("Unsupported dialect id " + dialect.getId());
+    };
   }
 
   public static class Builder {
index 622e8c6a4d03676e7511e9d84c7a5bfd70c86e07..419645d3da60f7cac883d373a262ca72977bfe0a 100644 (file)
@@ -45,17 +45,12 @@ public class TinyIntColumnDef extends AbstractColumnDef {
 
   @Override
   public String generateSqlType(Dialect dialect) {
-    switch (dialect.getId()) {
-      case PostgreSql.ID:
-        return "SMALLINT";
-      case Oracle.ID:
-        return "NUMBER(3)";
-      case MsSql.ID:
-      case H2.ID:
-        return "TINYINT";
-      default:
-        throw new UnsupportedOperationException(String.format("Unknown dialect '%s'", dialect.getId()));
-    }
+    return switch (dialect.getId()) {
+      case PostgreSql.ID -> "SMALLINT";
+      case Oracle.ID -> "NUMBER(3)";
+      case MsSql.ID, H2.ID -> "TINYINT";
+      default -> throw new UnsupportedOperationException(String.format("Unknown dialect '%s'", dialect.getId()));
+    };
   }
 
   public static class Builder {
index 52d8ce2089898d60654ebedc9bda22eda0587ea9..7acf545e77fd66d320f3f6c64146b0adfd48ccca 100644 (file)
@@ -65,14 +65,9 @@ public class DropConstraintBuilder {
   }
 
   private String createSqlStatement() {
-    switch (dialect.getId()) {
-      case MsSql.ID:
-      case Oracle.ID:
-      case PostgreSql.ID:
-      case H2.ID:
-        return "ALTER TABLE " + tableName + " DROP CONSTRAINT " + constraintName;
-      default:
-        throw new IllegalStateException("Unsupported dialect for drop of constraint: " + dialect);
-    }
+    return switch (dialect.getId()) {
+      case MsSql.ID, Oracle.ID, PostgreSql.ID, H2.ID -> "ALTER TABLE " + tableName + " DROP CONSTRAINT " + constraintName;
+      default -> throw new IllegalStateException("Unsupported dialect for drop of constraint: " + dialect);
+    };
   }
 }
index bce1e12699bf7876d162a7c86811c277b34a46a6..6ac5948e3734670fd109df7a14e57560e642fd67 100644 (file)
@@ -42,18 +42,14 @@ public class DropTableBuilder {
   }
 
   public List<String> build() {
-    switch (dialect.getId()) {
-      case Oracle.ID:
-        return forOracle(tableName);
-      case H2.ID:
-      case PostgreSql.ID:
-        return singletonList("drop table if exists " + tableName);
-      case MsSql.ID:
+    return switch (dialect.getId()) {
+      case Oracle.ID -> forOracle(tableName);
+      case H2.ID, PostgreSql.ID -> singletonList("drop table if exists " + tableName);
+      case MsSql.ID ->
         // "if exists" is supported only since MSSQL 2016.
-        return singletonList("drop table " + tableName);
-      default:
-        throw new IllegalStateException("Unsupported DB: " + dialect.getId());
-    }
+        singletonList("drop table " + tableName);
+      default -> throw new IllegalStateException("Unsupported DB: " + dialect.getId());
+    };
   }
 
   private static List<String> forOracle(String tableName) {
index 415f209e004dd48e0c7031038086592713235144..6cf70f766b42cfcc59c7bf7e1d398af8f04dad91 100644 (file)
@@ -73,8 +73,7 @@ public class RenameTableBuilder {
 
   private List<String> createSqlStatement() {
     switch (dialect.getId()) {
-      case H2.ID:
-      case PostgreSql.ID:
+      case H2.ID, PostgreSql.ID:
         return singletonList("ALTER TABLE " + name + " RENAME TO " + newName);
       case MsSql.ID:
         return singletonList("EXEC sp_rename '" + name + "', '" + newName + "'");
index 1757c272e3ccecd8111627289a227db7fea66f6a..d1a013cf428978db49fc82ff054d1b254f562ee2 100644 (file)
@@ -61,16 +61,11 @@ class DropIndexBuilder {
   }
 
   private String createSqlStatement() {
-    switch (dialect.getId()) {
-      case MsSql.ID:
-        return "DROP INDEX " + indexName + " ON " + tableName;
-      case Oracle.ID:
-        return "DROP INDEX " + indexName;
-      case H2.ID:
-      case PostgreSql.ID:
-        return "DROP INDEX IF EXISTS " + indexName;
-      default:
-        throw new IllegalStateException("Unsupported dialect for drop of index: " + dialect);
-    }
+    return switch (dialect.getId()) {
+      case MsSql.ID -> "DROP INDEX " + indexName + " ON " + tableName;
+      case Oracle.ID -> "DROP INDEX " + indexName;
+      case H2.ID, PostgreSql.ID -> "DROP INDEX IF EXISTS " + indexName;
+      default -> throw new IllegalStateException("Unsupported dialect for drop of index: " + dialect);
+    };
   }
 }
index 9b1a45643cfc12346c72c61c924e2e021a0070e5..ca6fe276c4b9bf204433ba5b3a49a9cd395b3354 100644 (file)
@@ -114,17 +114,12 @@ public class SchedulerImpl implements Scheduler, ManagedProcessEventListener, Pr
   }
 
   private static ManagedProcessHandler.Timeout stopTimeoutFor(ProcessId processId, AppSettings settings) {
-    switch (processId) {
-      case ELASTICSEARCH:
-        return HARD_STOP_TIMEOUT;
-      case WEB_SERVER:
-        return newTimeout(getStopTimeoutMs(settings, WEB_GRACEFUL_STOP_TIMEOUT), TimeUnit.MILLISECONDS);
-      case COMPUTE_ENGINE:
-        return newTimeout(getStopTimeoutMs(settings, CE_GRACEFUL_STOP_TIMEOUT), TimeUnit.MILLISECONDS);
-      case APP:
-      default:
-        throw new IllegalArgumentException("Unsupported processId " + processId);
-    }
+    return switch (processId) {
+      case ELASTICSEARCH -> HARD_STOP_TIMEOUT;
+      case WEB_SERVER -> newTimeout(getStopTimeoutMs(settings, WEB_GRACEFUL_STOP_TIMEOUT), TimeUnit.MILLISECONDS);
+      case COMPUTE_ENGINE -> newTimeout(getStopTimeoutMs(settings, CE_GRACEFUL_STOP_TIMEOUT), TimeUnit.MILLISECONDS);
+      default -> throw new IllegalArgumentException("Unsupported processId " + processId);
+    };
   }
 
   private static long getStopTimeoutMs(AppSettings settings, ProcessProperties.Property property) {
@@ -385,8 +380,7 @@ public class SchedulerImpl implements Scheduler, ManagedProcessEventListener, Pr
           restartAsync();
         }
         break;
-      case HARD_STOPPING:
-      case STOPPING:
+      case HARD_STOPPING, STOPPING:
         if (lastProcessStopped) {
           finalizeStop();
         }
index a08b332e000e3c0e515184875458a7205c08cd80..202f45328a59cb275f8be043c5e7828990d0dfca 100644 (file)
@@ -90,20 +90,14 @@ public class ComponentIndexer implements ProjectIndexer, NeedAuthorizationIndexe
   @Override
   public Collection<EsQueueDto> prepareForRecovery(DbSession dbSession, Collection<String> projectUuids, Cause cause) {
     switch (cause) {
-      case MEASURE_CHANGE:
-      case PROJECT_TAGS_UPDATE:
-      case PERMISSION_CHANGE:
+      case MEASURE_CHANGE, PROJECT_TAGS_UPDATE, PERMISSION_CHANGE:
         // measures, tags and permissions are not part of type components/component
         return emptyList();
-
-      case PROJECT_CREATION:
-      case PROJECT_DELETION:
-      case PROJECT_KEY_UPDATE:
+      case PROJECT_CREATION, PROJECT_DELETION, PROJECT_KEY_UPDATE:
         List<EsQueueDto> items = projectUuids.stream()
           .map(branchUuid -> EsQueueDto.create(TYPE_COMPONENT.format(), branchUuid, null, branchUuid))
           .collect(MoreCollectors.toArrayList(projectUuids.size()));
         return dbClient.esQueueDao().insert(dbSession, items);
-
       default:
         // defensive case
         throw new IllegalStateException("Unsupported cause: " + cause);
index 34701bef9ab0535944d6353e3c9f53af544941b7..975f73ccc018eb46bd81312ea42252a9ca9cf6fa 100644 (file)
@@ -123,13 +123,9 @@ public class IssueIndexer implements ProjectIndexer, NeedAuthorizationIndexer {
   @Override
   public Collection<EsQueueDto> prepareForRecovery(DbSession dbSession, Collection<String> projectUuids, ProjectIndexer.Cause cause) {
     switch (cause) {
-      case PROJECT_CREATION:
-        // nothing to do, issues do not exist at project creation
-      case MEASURE_CHANGE:
-      case PROJECT_KEY_UPDATE:
-      case PROJECT_TAGS_UPDATE:
-      case PERMISSION_CHANGE:
-        // nothing to do. Measures, permissions, project key and tags are not used in type issues/issue
+      case PROJECT_CREATION, MEASURE_CHANGE, PROJECT_KEY_UPDATE, PROJECT_TAGS_UPDATE, PERMISSION_CHANGE:
+        // Nothing to do, issues do not exist at project creation
+        // Measures, permissions, project key and tags are not used in type issues/issue
         return emptyList();
 
       case PROJECT_DELETION:
index 3819871ae55b0a05e36a270e9e7711ee7990c4a3..86dbfc1eec65bd01d05c4d3267fcc58f4d79c684 100644 (file)
@@ -93,13 +93,9 @@ public class ProjectMeasuresIndexer implements ProjectIndexer, NeedAuthorization
       case PERMISSION_CHANGE:
         // nothing to do, permissions are not used in type projectmeasures/projectmeasure
         return Collections.emptyList();
-      case MEASURE_CHANGE:
-      case PROJECT_KEY_UPDATE:
-        // project must be re-indexed because key is used in this index
-      case PROJECT_CREATION:
-        // provisioned projects are supported by WS api/components/search_projects
-      case PROJECT_TAGS_UPDATE:
-      case PROJECT_DELETION:
+      case MEASURE_CHANGE, PROJECT_KEY_UPDATE, PROJECT_CREATION, PROJECT_TAGS_UPDATE, PROJECT_DELETION:
+        // when MEASURE_CHANGE or PROJECT_KEY_UPDATE project must be re-indexed because key is used in this index
+        // when PROJECT_CREATION provisioned projects are supported by WS api/components/search_projects
         List<EsQueueDto> items = projectUuids.stream()
           .map(projectUuid -> EsQueueDto.create(TYPE_PROJECT_MEASURES.format(), projectUuid, null, projectUuid))
           .collect(MoreCollectors.toArrayList(projectUuids.size()));
index 7ca1c0768a78d05be8a1219ce8bc9788a9f3221a..6c2c7b7a62dddeaca7f8dde507e875bf0d4ec15f 100644 (file)
@@ -128,19 +128,12 @@ class ConditionEvaluator {
   }
 
   private static Comparable getNumericValue(ValueType type, double value) {
-    switch (type) {
-      case INT:
-      case RATING:
-        return (int) value;
-      case FLOAT:
-      case PERCENT:
-        return value;
-      case MILLISEC:
-      case WORK_DUR:
-        return (long) value;
-      default:
-        throw new IllegalArgumentException("Condition on numeric value is not allowed for type " + type);
-    }
+    return switch (type) {
+      case INT, RATING -> (int) value;
+      case FLOAT, PERCENT -> value;
+      case MILLISEC, WORK_DUR -> (long) value;
+      default -> throw new IllegalArgumentException("Condition on numeric value is not allowed for type " + type);
+    };
   }
 
   private static int parseInteger(String value) {
index 65cba7e23bbf673904901da0973aa088735e49b1..97bcefd7bbd04a57b082045c8470ecd8f19b4c8a 100644 (file)
@@ -101,21 +101,17 @@ public class WebhookCallerImpl implements WebhookCaller {
 
   private Response execute(Request request) throws IOException {
     Response response = okHttpClient.newCall(request).execute();
-    switch (response.code()) {
-      case HTTP_MOVED_PERM:
-      case HTTP_MOVED_TEMP:
-      case HTTP_TEMP_REDIRECT:
-      case HTTP_PERM_REDIRECT:
+    return switch (response.code()) {
+      case HTTP_MOVED_PERM, HTTP_MOVED_TEMP, HTTP_TEMP_REDIRECT, HTTP_PERM_REDIRECT ->
         // OkHttpClient does not follow the redirect with the same HTTP method. A POST is
         // redirected to a GET. Because of that the redirect must be manually
         // implemented.
         // See:
         // https://github.com/square/okhttp/blob/07309c1c7d9e296014268ebd155ebf7ef8679f6c/okhttp/src/main/java/okhttp3/internal/http/RetryAndFollowUpInterceptor.java#L316
         // https://github.com/square/okhttp/issues/936#issuecomment-266430151
-        return followPostRedirect(response);
-      default:
-        return response;
-    }
+        followPostRedirect(response);
+      default -> response;
+    };
   }
 
   /**
index 6650136199c9e42649c178f7cb6d22ead32eaeb7..fa41d7b28f1600994be8c960b2537cf2b630d12a 100644 (file)
@@ -321,8 +321,7 @@ public class IssueQueryFactory {
     setBranch(builder, components.get(0), request.getBranch(), request.getPullRequest(), dbSession);
     String qualifier = qualifiers.iterator().next();
     switch (qualifier) {
-      case Qualifiers.VIEW:
-      case Qualifiers.SUBVIEW:
+      case Qualifiers.VIEW, Qualifiers.SUBVIEW:
         addViewsOrSubViews(builder, components);
         break;
       case Qualifiers.APP:
@@ -338,8 +337,7 @@ public class IssueQueryFactory {
       case Qualifiers.DIRECTORY:
         addDirectories(builder, components);
         break;
-      case Qualifiers.FILE:
-      case Qualifiers.UNIT_TEST_FILE:
+      case Qualifiers.FILE, Qualifiers.UNIT_TEST_FILE:
         builder.componentUuids(components.stream().map(ComponentDto::uuid).collect(toList()));
         break;
       default:
index 7fc65f902f0192dd1b40146869347b727e9f3a79..12b092a6a00aa9000e777c96c3e1a204fbee5dec 100644 (file)
@@ -40,10 +40,10 @@ import org.sonar.server.es.IndexType;
 import org.sonar.server.es.IndexingResult;
 import org.sonar.server.es.OneToOneResilientIndexingListener;
 import org.sonar.server.es.ProjectIndexer;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import static java.util.Collections.emptyList;
 import static org.sonar.core.util.stream.MoreCollectors.toArrayList;
-import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * Populates the types "authorization" of each index requiring project
@@ -106,22 +106,15 @@ public class PermissionIndexer implements ProjectIndexer {
 
   @Override
   public Collection<EsQueueDto> prepareForRecovery(DbSession dbSession, Collection<String> projectUuids, ProjectIndexer.Cause cause) {
-    switch (cause) {
-      case MEASURE_CHANGE:
-      case PROJECT_KEY_UPDATE:
-      case PROJECT_TAGS_UPDATE:
+    return switch (cause) {
+      case MEASURE_CHANGE, PROJECT_KEY_UPDATE, PROJECT_TAGS_UPDATE ->
         // nothing to change. Measures, project key and tags are not part of this index
-        return emptyList();
-
-      case PROJECT_CREATION:
-      case PROJECT_DELETION:
-      case PERMISSION_CHANGE:
-        return insertIntoEsQueue(dbSession, projectUuids);
-
-      default:
+        emptyList();
+      case PROJECT_CREATION, PROJECT_DELETION, PERMISSION_CHANGE -> insertIntoEsQueue(dbSession, projectUuids);
+      default ->
         // defensive case
         throw new IllegalStateException("Unsupported cause: " + cause);
-    }
+    };
   }
 
   private Collection<EsQueueDto> insertIntoEsQueue(DbSession dbSession, Collection<String> projectUuids) {
index 86407ec6e623d7b78e00b3273619b96ca2af980d..56ecd44fdb451ce0127c21c3c25c053e4b4e9ca0 100644 (file)
@@ -291,14 +291,10 @@ public class SearchProjectsAction implements ComponentsWsAction {
       return Sets.newHashSet(Qualifiers.PROJECT);
     }
 
-    switch (edition.get()) {
-      case ENTERPRISE:
-      case DATACENTER:
-      case DEVELOPER:
-        return Sets.newHashSet(Qualifiers.PROJECT, Qualifiers.APP);
-      default:
-        return Sets.newHashSet(Qualifiers.PROJECT);
-    }
+    return switch (edition.get()) {
+      case ENTERPRISE, DATACENTER, DEVELOPER -> Sets.newHashSet(Qualifiers.PROJECT, Qualifiers.APP);
+      default -> Sets.newHashSet(Qualifiers.PROJECT);
+    };
   }
 
   private static boolean hasFavoriteFilter(List<Criterion> criteria) {
index 0540cc7fa11cf5a261dfd85c17dbd35187d0e0b8..b604973445960a862ae06e3e8571f7a3d0cd0f99 100644 (file)
@@ -50,50 +50,26 @@ public class MeasureValueFormatter {
   @CheckForNull
   static String formatMeasureValue(double doubleValue, @Nullable String stringValue, MetricDto metric) {
     Metric.ValueType metricType = Metric.ValueType.valueOf(metric.getValueType());
-    switch (metricType) {
-      case BOOL:
-        return formatBoolean(doubleValue);
-      case INT:
-        return formatInteger(doubleValue);
-      case MILLISEC:
-      case WORK_DUR:
-        return formatLong(doubleValue);
-      case FLOAT:
-      case PERCENT:
-      case RATING:
-        return String.valueOf(doubleValue);
-      case LEVEL:
-      case STRING:
-      case DATA:
-      case DISTRIB:
-        return stringValue;
-      default:
-        throw new IllegalArgumentException("Unsupported metric type: " + metricType.name());
-    }
+    return switch (metricType) {
+      case BOOL -> formatBoolean(doubleValue);
+      case INT -> formatInteger(doubleValue);
+      case MILLISEC, WORK_DUR -> formatLong(doubleValue);
+      case FLOAT, PERCENT, RATING -> String.valueOf(doubleValue);
+      case LEVEL, STRING, DATA, DISTRIB -> stringValue;
+      default -> throw new IllegalArgumentException("Unsupported metric type: " + metricType.name());
+    };
   }
 
   static String formatNumericalValue(double value, MetricDto metric) {
     Metric.ValueType metricType = Metric.ValueType.valueOf(metric.getValueType());
 
-    switch (metricType) {
-      case BOOL:
-        return formatBoolean(value);
-      case INT:
-        return formatInteger(value);
-      case MILLISEC:
-      case WORK_DUR:
-        return formatLong(value);
-      case FLOAT:
-      case PERCENT:
-      case RATING:
-        return String.valueOf(value);
-      case LEVEL:
-      case STRING:
-      case DATA:
-      case DISTRIB:
-      default:
-        throw new IllegalArgumentException(String.format("Unsupported metric type '%s' for numerical value", metricType.name()));
-    }
+    return switch (metricType) {
+      case BOOL -> formatBoolean(value);
+      case INT -> formatInteger(value);
+      case MILLISEC, WORK_DUR -> formatLong(value);
+      case FLOAT, PERCENT, RATING -> String.valueOf(value);
+      default -> throw new IllegalArgumentException(String.format("Unsupported metric type '%s' for numerical value", metricType.name()));
+    };
   }
 
   private static String formatBoolean(double value) {
index 708afcc5e290867aaf22189964e5b1454faec696..17dfe192cb9f56133389aebc1b23fac2e4cacee3 100644 (file)
@@ -221,13 +221,10 @@ public class CurrentAction implements UsersWsAction {
     if (!edition.isPresent()) {
       return false;
     }
-    switch (edition.get()) {
-      case ENTERPRISE:
-      case DATACENTER:
-        return true;
-      default:
-        return false;
-    }
+    return switch (edition.get()) {
+      case ENTERPRISE, DATACENTER -> true;
+      default -> false;
+    };
   }
 
   private void cleanUserHomepageInDb(DbSession dbSession, UserDto user) {
index 8c87eae9cb2990f795bdd657f8bd026b360333ea..3c9f7d18168cb02abc3612ad5d2f954c372bdd43 100644 (file)
@@ -121,13 +121,10 @@ public class SetHomepageAction implements UsersWsAction {
         } else {
           return projectDto.getUuid();
         }
-      case PORTFOLIO:
-      case APPLICATION:
+      case PORTFOLIO, APPLICATION:
         checkArgument(isNotBlank(componentParameter), PARAMETER_REQUIRED, type.name(), PARAM_COMPONENT);
         return componentFinder.getByKey(dbSession, componentParameter).uuid();
-      case PORTFOLIOS:
-      case PROJECTS:
-      case ISSUES:
+      case PORTFOLIOS, PROJECTS, ISSUES:
         return null;
       default:
         throw new IllegalArgumentException(format("Unknown type '%s'", type.name()));
index 458b8312e5a596ddefa3bc38c1e6f02095657469..91596edbe7c420deed895c5c56775197a6de58b3 100644 (file)
@@ -82,19 +82,13 @@ class EmbeddedTomcat {
     if (webappContext == null) {
       return Status.DOWN;
     }
-    switch (webappContext.getState()) {
-      case NEW:
-      case INITIALIZING:
-      case INITIALIZED:
-      case STARTING_PREP:
-      case STARTING:
-        return Status.DOWN;
-      case STARTED:
-        return Status.UP;
-      default:
+    return switch (webappContext.getState()) {
+      case NEW, INITIALIZING, INITIALIZED, STARTING_PREP, STARTING -> Status.DOWN;
+      case STARTED -> Status.UP;
+      default ->
         // problem, stopped or failed
-        return Status.FAILED;
-    }
+        Status.FAILED;
+    };
   }
 
   public enum Status {