aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-core
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2018-05-12 19:59:06 +0200
committerSonarTech <sonartech@sonarsource.com>2018-05-15 20:20:49 +0200
commit46bbd987eb7f729d665ea7c16f432cfb6500d476 (patch)
tree6f0024bd3874839980fbeaa24869bd3e21ad6444 /server/sonar-db-core
parent81c4d588b06a5dd074c1695718b294d69ba2204b (diff)
downloadsonarqube-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.java36
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();
}
}