This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git

commit b6df0af29746c3afb1073d628e6704a2f22cae0e
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sun Aug 21 11:05:45 2022 -0400

    Refactor internals and use Stream
---
 .../java/org/apache/commons/lang3/LocaleUtils.java | 30 ++++++++--------------
 1 file changed, 10 insertions(+), 20 deletions(-)

diff --git a/src/main/java/org/apache/commons/lang3/LocaleUtils.java 
b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
index 31e35b7f7..8da310b7a 100644
--- a/src/main/java/org/apache/commons/lang3/LocaleUtils.java
+++ b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
@@ -25,6 +25,8 @@ import java.util.Locale;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 /**
  * <p>Operations to assist when working with a {@link Locale}.</p>
@@ -74,6 +76,10 @@ public class LocaleUtils {
         return SyncAvoid.AVAILABLE_LOCALE_LIST;
     }
 
+    private static List<Locale> availableLocaleList(final Predicate<Locale> 
predicate) {
+        return 
availableLocaleList().stream().filter(predicate).collect(Collectors.toList());
+    }
+
     /**
      * <p>Obtains an unmodifiable set of installed locales.</p>
      *
@@ -100,16 +106,8 @@ public class LocaleUtils {
         if (languageCode == null) {
             return Collections.emptyList();
         }
-        return cCountriesByLanguage.computeIfAbsent(languageCode, lc -> {
-            final List<Locale> countries = new ArrayList<>();
-            final List<Locale> locales = availableLocaleList();
-            for (final Locale locale : locales) {
-                if (languageCode.equals(locale.getLanguage()) && 
!locale.getCountry().isEmpty() && locale.getVariant().isEmpty()) {
-                    countries.add(locale);
-                }
-            }
-            return Collections.unmodifiableList(countries);
-        });
+        return cCountriesByLanguage.computeIfAbsent(languageCode, lc -> 
Collections.unmodifiableList(
+            availableLocaleList(locale -> 
languageCode.equals(locale.getLanguage()) && !locale.getCountry().isEmpty() && 
locale.getVariant().isEmpty())));
     }
 
     /**
@@ -165,16 +163,8 @@ public class LocaleUtils {
         if (countryCode == null) {
             return Collections.emptyList();
         }
-        return cLanguagesByCountry.computeIfAbsent(countryCode, k -> {
-            final List<Locale> locales = availableLocaleList();
-            final List<Locale> langs = new ArrayList<>();
-            for (final Locale locale : locales) {
-                if (countryCode.equals(locale.getCountry()) && 
locale.getVariant().isEmpty()) {
-                    langs.add(locale);
-                }
-            }
-            return Collections.unmodifiableList(langs);
-        });
+        return cLanguagesByCountry.computeIfAbsent(countryCode,
+            k -> Collections.unmodifiableList(availableLocaleList(locale -> 
countryCode.equals(locale.getCountry()) && locale.getVariant().isEmpty())));
     }
 
     /**

Reply via email to