diff options
author | Simon Brandhof <simon.brandhof@sonarsource.com> | 2018-05-12 19:59:06 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2018-05-15 20:20:49 +0200 |
commit | 46bbd987eb7f729d665ea7c16f432cfb6500d476 (patch) | |
tree | 6f0024bd3874839980fbeaa24869bd3e21ad6444 /server/sonar-db-core | |
parent | 81c4d588b06a5dd074c1695718b294d69ba2204b (diff) | |
download | sonarqube-46bbd987eb7f729d665ea7c16f432cfb6500d476.tar.gz sonarqube-46bbd987eb7f729d665ea7c16f432cfb6500d476.zip |
Drop Guava Function in DialectUtils
Diffstat (limited to 'server/sonar-db-core')
-rw-r--r-- | server/sonar-db-core/src/main/java/org/sonar/db/dialect/DialectUtils.java | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/server/sonar-db-core/src/main/java/org/sonar/db/dialect/DialectUtils.java b/server/sonar-db-core/src/main/java/org/sonar/db/dialect/DialectUtils.java index 421798e56dd..abe02c45aae 100644 --- a/server/sonar-db-core/src/main/java/org/sonar/db/dialect/DialectUtils.java +++ b/server/sonar-db-core/src/main/java/org/sonar/db/dialect/DialectUtils.java @@ -19,10 +19,9 @@ */ 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(); } } |