]> source.dussan.org Git - sonarqube.git/commitdiff
Drop Guava Function in DialectUtils
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Sat, 12 May 2018 17:59:06 +0000 (19:59 +0200)
committerSonarTech <sonartech@sonarsource.com>
Tue, 15 May 2018 18:20:49 +0000 (20:20 +0200)
server/sonar-db-core/src/main/java/org/sonar/db/dialect/DialectUtils.java

index 421798e56ddd3fde76ed89ff4fc587ffe4e14061..abe02c45aae555ce8c0318049c27d9ad32e5e3e8 100644 (file)
  */
 package org.sonar.db.dialect;
 
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterators;
-import java.util.NoSuchElementException;
-import javax.annotation.CheckForNull;
+import java.util.Arrays;
+import java.util.Optional;
+import java.util.function.Predicate;
 import org.apache.commons.lang.StringUtils;
 import org.sonar.api.utils.MessageException;
 
@@ -33,31 +32,24 @@ public final class DialectUtils {
   private DialectUtils() {
     // only static stuff
   }
-  
-  public static Dialect find(final String dialectId, final String jdbcConnectionUrl) {
-    Dialect match = StringUtils.isNotBlank(dialectId) ? findById(dialectId) : findByJdbcUrl(jdbcConnectionUrl);
-    if (match == null) {
-      throw MessageException.of("Unable to determine database dialect to use within sonar with dialect " + dialectId + " jdbc url " + jdbcConnectionUrl);
-    }
-    return match;
+
+  public static Dialect find(String dialectId, String jdbcConnectionUrl) {
+    Optional<Dialect> match = StringUtils.isNotBlank(dialectId) ? findById(dialectId) : findByJdbcUrl(jdbcConnectionUrl);
+    return match.orElseThrow(() -> MessageException.of(
+      "Unable to determine database dialect to use within sonar with dialect " + dialectId + " jdbc url " + jdbcConnectionUrl));
   }
 
-  @CheckForNull
-  private static Dialect findByJdbcUrl(final String jdbcConnectionUrl) {
+  private static Optional<Dialect> findByJdbcUrl(String jdbcConnectionUrl) {
     return findDialect(dialect -> dialect != null && dialect.matchesJdbcURL(StringUtils.trimToEmpty(jdbcConnectionUrl)));
   }
 
-  @CheckForNull
-  private static Dialect findById(final String dialectId) {
+  private static Optional<Dialect> findById(String dialectId) {
     return findDialect(dialect -> dialect != null && dialect.getId().equals(dialectId));
   }
 
-  @CheckForNull
-  private static Dialect findDialect(Predicate<Dialect> predicate) {
-    try {
-      return Iterators.find(Iterators.forArray(DIALECTS), predicate);
-    } catch (NoSuchElementException ex) {
-      return null;
-    }
+  private static Optional<Dialect> findDialect(Predicate<Dialect> predicate) {
+    return Arrays.stream(DIALECTS)
+      .filter(predicate)
+      .findFirst();
   }
 }