You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by br...@apache.org on 2017/04/17 10:52:01 UTC

[1/6] [lang] Better local variable names

Repository: commons-lang
Updated Branches:
  refs/heads/master cd05fddd4 -> dfecbe970


Better local variable names


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/3c899943
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/3c899943
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/3c899943

Branch: refs/heads/master
Commit: 3c89994355f3574078c832b2dcacba0e65e87ed1
Parents: cd05fdd
Author: Benedikt Ritter <br...@apache.org>
Authored: Mon Apr 17 12:01:54 2017 +0200
Committer: Benedikt Ritter <br...@apache.org>
Committed: Mon Apr 17 12:01:54 2017 +0200

----------------------------------------------------------------------
 .../org/apache/commons/lang3/LocaleUtils.java   | 37 ++++++++++----------
 1 file changed, 19 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/3c899943/src/main/java/org/apache/commons/lang3/LocaleUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/LocaleUtils.java b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
index f13b52f..a2f01ec 100644
--- a/src/main/java/org/apache/commons/lang3/LocaleUtils.java
+++ b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
@@ -122,34 +122,35 @@ public class LocaleUtils {
             }
             return new Locale(StringUtils.EMPTY, str.substring(1, 3), str.substring(4));
         }
-        
-        final String[] split = str.split("_", -1);
-        final int occurrences = split.length -1;
-        switch (occurrences) {
+
+        final String[] segments = str.split("_", -1);
+        final int segmentCount = segments.length -1;
+        final String country = segments[0];
+        switch (segmentCount) {
             case 0:
                 if (StringUtils.isAllLowerCase(str) && (len == 2 || len == 3)) {
                     return new Locale(str);
                 }
-            throw new IllegalArgumentException("Invalid locale format: " + str);
-                
+                throw new IllegalArgumentException("Invalid locale format: " + str);
+
             case 1:
-                if (StringUtils.isAllLowerCase(split[0]) &&
-                    (split[0].length() == 2 || split[0].length() == 3) &&
-                     (split[1].length() == 2 && StringUtils.isAllUpperCase(split[1])) ||
-                      (split[1].length() == 3 && StringUtils.isNumeric(split[1]))) {
-                    return new Locale(split[0], split[1]);
+                if (StringUtils.isAllLowerCase(country) &&
+                    (country.length() == 2 || country.length() == 3) &&
+                     (segments[1].length() == 2 && StringUtils.isAllUpperCase(segments[1])) ||
+                      (segments[1].length() == 3 && StringUtils.isNumeric(segments[1]))) {
+                    return new Locale(country, segments[1]);
                 }
-            throw new IllegalArgumentException("Invalid locale format: " + str);
+                throw new IllegalArgumentException("Invalid locale format: " + str);
 
             case 2:
-                if (StringUtils.isAllLowerCase(split[0]) && 
-                    (split[0].length() == 2 || split[0].length() == 3) &&
-                    (split[1].length() == 0 || split[1].length() == 2 && StringUtils.isAllUpperCase(split[1])) &&
-                     split[2].length() > 0) {
-                    return new Locale(split[0], split[1], split[2]);
+                if (StringUtils.isAllLowerCase(country) &&
+                    (country.length() == 2 || country.length() == 3) &&
+                    (segments[1].length() == 0 || segments[1].length() == 2 && StringUtils.isAllUpperCase(segments[1])) &&
+                     segments[2].length() > 0) {
+                    return new Locale(country, segments[1], segments[2]);
                 }
 
-                //$FALL-THROUGH$
+            //$FALL-THROUGH$
             default:
                 throw new IllegalArgumentException("Invalid locale format: " + str);
         }


[3/6] [lang] Extract some helper methods to make the code better readable

Posted by br...@apache.org.
Extract some helper methods to make the code better readable


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/d3146a54
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/d3146a54
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/d3146a54

Branch: refs/heads/master
Commit: d3146a545612422d3f8078f10afa00342b327199
Parents: d547412
Author: Benedikt Ritter <br...@apache.org>
Authored: Mon Apr 17 12:29:05 2017 +0200
Committer: Benedikt Ritter <br...@apache.org>
Committed: Mon Apr 17 12:29:05 2017 +0200

----------------------------------------------------------------------
 .../org/apache/commons/lang3/LocaleUtils.java   | 60 +++++++++++++++-----
 1 file changed, 47 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/d3146a54/src/main/java/org/apache/commons/lang3/LocaleUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/LocaleUtils.java b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
index 09479f6..58eb21b 100644
--- a/src/main/java/org/apache/commons/lang3/LocaleUtils.java
+++ b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
@@ -123,35 +123,39 @@ public class LocaleUtils {
             return new Locale(StringUtils.EMPTY, str.substring(1, 3), str.substring(4));
         }
 
-        return parseLocale(str, len);
+        return parseLocale(str);
     }
 
-    private static Locale parseLocale(final String str, final int len) {
+    /**
+     * Tries to parse a locale from the given String.
+     *
+     * @param str the String to parse a locale from.
+     * @return a Locale instance parsed from the given String.
+     * @throws IllegalArgumentException if the given String can not be parsed.
+     */
+    private static Locale parseLocale(final String str) {
         final String[] segments = str.split("_", -1);
         final int segmentCount = segments.length -1;
-        final String country = segments[0];
+        final String language = segments[0];
         switch (segmentCount) {
             case 0:
-                if (StringUtils.isAllLowerCase(str) && (len == 2 || len == 3)) {
+                if (isISO639LanguageCode(str)) {
                     return new Locale(str);
                 }
                 throw new IllegalArgumentException("Invalid locale format: " + str);
 
             case 1:
-                if (StringUtils.isAllLowerCase(country) &&
-                    (country.length() == 2 || country.length() == 3) &&
-                     (segments[1].length() == 2 && StringUtils.isAllUpperCase(segments[1])) ||
-                      (segments[1].length() == 3 && StringUtils.isNumeric(segments[1]))) {
-                    return new Locale(country, segments[1]);
+                if (isISO639LanguageCode(language) && isISO3166CountryCode(segments[1]) ||
+                      isNumericAreaCode(segments[1])) {
+                    return new Locale(language, segments[1]);
                 }
                 throw new IllegalArgumentException("Invalid locale format: " + str);
 
             case 2:
-                if (StringUtils.isAllLowerCase(country) &&
-                    (country.length() == 2 || country.length() == 3) &&
-                    (segments[1].length() == 0 || segments[1].length() == 2 && StringUtils.isAllUpperCase(segments[1])) &&
+                if (isISO639LanguageCode(language) &&
+                    (segments[1].length() == 0 || isISO3166CountryCode(segments[1])) &&
                      segments[2].length() > 0) {
-                    return new Locale(country, segments[1], segments[2]);
+                    return new Locale(language, segments[1], segments[2]);
                 }
 
             //$FALL-THROUGH$
@@ -160,6 +164,36 @@ public class LocaleUtils {
         }
     }
 
+    /**
+     * Checks whether the given String is a ISO 639 compliant language code.
+     *
+     * @param str the String to check.
+     * @return true, if the given String is a ISO 639 compliant language code.
+     */
+    private static boolean isISO639LanguageCode(final String str) {
+        return StringUtils.isAllLowerCase(str) && (str.length() == 2 || str.length() == 3);
+    }
+
+    /**
+     * Checks whether the given String is a ISO 3166 alpha-2 country code.
+     *
+     * @param str the String to check
+     * @return true, is the given String is a ISO 3166 compliant country code.
+     */
+    private static boolean isISO3166CountryCode(final String str) {
+        return StringUtils.isAllUpperCase(str) && str.length() == 2;
+    }
+
+    /**
+     * Checks whether the given String is a UN M.49 numeric area code.
+     *
+     * @param str the String to check
+     * @return true, is the given String is a UN M.49 numeric area code.
+     */
+    private static boolean isNumericAreaCode(final String str) {
+        return StringUtils.isNumeric(str) && str.length() == 3;
+    }
+
     //-----------------------------------------------------------------------
     /**
      * <p>Obtains the list of locales to search through when performing


[4/6] [lang] Replace switch statement with if-else block

Posted by br...@apache.org.
Replace switch statement with if-else block


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/8f540303
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/8f540303
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/8f540303

Branch: refs/heads/master
Commit: 8f54030347e31e0b1492fe874a1f1b67b89b836a
Parents: d3146a5
Author: Benedikt Ritter <br...@apache.org>
Authored: Mon Apr 17 12:31:34 2017 +0200
Committer: Benedikt Ritter <br...@apache.org>
Committed: Mon Apr 17 12:31:34 2017 +0200

----------------------------------------------------------------------
 .../org/apache/commons/lang3/LocaleUtils.java   | 38 ++++++++------------
 1 file changed, 15 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/8f540303/src/main/java/org/apache/commons/lang3/LocaleUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/LocaleUtils.java b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
index 58eb21b..515443d 100644
--- a/src/main/java/org/apache/commons/lang3/LocaleUtils.java
+++ b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
@@ -137,31 +137,23 @@ public class LocaleUtils {
         final String[] segments = str.split("_", -1);
         final int segmentCount = segments.length -1;
         final String language = segments[0];
-        switch (segmentCount) {
-            case 0:
-                if (isISO639LanguageCode(str)) {
-                    return new Locale(str);
-                }
-                throw new IllegalArgumentException("Invalid locale format: " + str);
-
-            case 1:
-                if (isISO639LanguageCode(language) && isISO3166CountryCode(segments[1]) ||
-                      isNumericAreaCode(segments[1])) {
-                    return new Locale(language, segments[1]);
-                }
-                throw new IllegalArgumentException("Invalid locale format: " + str);
-
-            case 2:
-                if (isISO639LanguageCode(language) &&
+        if (segmentCount == 0) {
+            if (isISO639LanguageCode(str)) {
+                return new Locale(str);
+            }
+        } else if (segmentCount == 1) {
+            if (isISO639LanguageCode(language) && isISO3166CountryCode(segments[1]) ||
+                    isNumericAreaCode(segments[1])) {
+                return new Locale(language, segments[1]);
+            }
+        } else if (segmentCount == 2) {
+            if (isISO639LanguageCode(language) &&
                     (segments[1].length() == 0 || isISO3166CountryCode(segments[1])) &&
-                     segments[2].length() > 0) {
-                    return new Locale(language, segments[1], segments[2]);
-                }
-
-            //$FALL-THROUGH$
-            default:
-                throw new IllegalArgumentException("Invalid locale format: " + str);
+                    segments[2].length() > 0) {
+                return new Locale(language, segments[1], segments[2]);
+            }
         }
+        throw new IllegalArgumentException("Invalid locale format: " + str);
     }
 
     /**


[5/6] [lang] Remove initial if statement by adding an early return

Posted by br...@apache.org.
Remove initial if statement by adding an early return


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/f059e5f7
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/f059e5f7
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/f059e5f7

Branch: refs/heads/master
Commit: f059e5f7fa1ac4a906b5d2e18d72d410bf28fa2d
Parents: 8f54030
Author: Benedikt Ritter <br...@apache.org>
Authored: Mon Apr 17 12:33:17 2017 +0200
Committer: Benedikt Ritter <br...@apache.org>
Committed: Mon Apr 17 12:33:17 2017 +0200

----------------------------------------------------------------------
 src/main/java/org/apache/commons/lang3/LocaleUtils.java | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/f059e5f7/src/main/java/org/apache/commons/lang3/LocaleUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/LocaleUtils.java b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
index 515443d..861b25d 100644
--- a/src/main/java/org/apache/commons/lang3/LocaleUtils.java
+++ b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
@@ -134,14 +134,14 @@ public class LocaleUtils {
      * @throws IllegalArgumentException if the given String can not be parsed.
      */
     private static Locale parseLocale(final String str) {
+        if (isISO639LanguageCode(str)) {
+            return new Locale(str);
+        }
+
         final String[] segments = str.split("_", -1);
         final int segmentCount = segments.length -1;
         final String language = segments[0];
-        if (segmentCount == 0) {
-            if (isISO639LanguageCode(str)) {
-                return new Locale(str);
-            }
-        } else if (segmentCount == 1) {
+        if (segmentCount == 1) {
             if (isISO639LanguageCode(language) && isISO3166CountryCode(segments[1]) ||
                     isNumericAreaCode(segments[1])) {
                 return new Locale(language, segments[1]);


[2/6] [lang] Extract method for parsing locales from string

Posted by br...@apache.org.
Extract method for parsing locales from string


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/d547412b
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/d547412b
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/d547412b

Branch: refs/heads/master
Commit: d547412bbd2a1ca56769a2bfa13b7ed9547310ca
Parents: 3c89994
Author: Benedikt Ritter <br...@apache.org>
Authored: Mon Apr 17 12:09:37 2017 +0200
Committer: Benedikt Ritter <br...@apache.org>
Committed: Mon Apr 17 12:09:37 2017 +0200

----------------------------------------------------------------------
 src/main/java/org/apache/commons/lang3/LocaleUtils.java | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/d547412b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/LocaleUtils.java b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
index a2f01ec..09479f6 100644
--- a/src/main/java/org/apache/commons/lang3/LocaleUtils.java
+++ b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
@@ -123,6 +123,10 @@ public class LocaleUtils {
             return new Locale(StringUtils.EMPTY, str.substring(1, 3), str.substring(4));
         }
 
+        return parseLocale(str, len);
+    }
+
+    private static Locale parseLocale(final String str, final int len) {
         final String[] segments = str.split("_", -1);
         final int segmentCount = segments.length -1;
         final String country = segments[0];


[6/6] [lang] Introduce some more local variables to make the code better readable

Posted by br...@apache.org.
Introduce some more local variables to make the code better readable


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/dfecbe97
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/dfecbe97
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/dfecbe97

Branch: refs/heads/master
Commit: dfecbe970917754511a081f8b86efac211e624f6
Parents: f059e5f
Author: Benedikt Ritter <br...@apache.org>
Authored: Mon Apr 17 12:40:58 2017 +0200
Committer: Benedikt Ritter <br...@apache.org>
Committed: Mon Apr 17 12:40:58 2017 +0200

----------------------------------------------------------------------
 .../org/apache/commons/lang3/LocaleUtils.java   | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/dfecbe97/src/main/java/org/apache/commons/lang3/LocaleUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/LocaleUtils.java b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
index 861b25d..57f5079 100644
--- a/src/main/java/org/apache/commons/lang3/LocaleUtils.java
+++ b/src/main/java/org/apache/commons/lang3/LocaleUtils.java
@@ -139,18 +139,20 @@ public class LocaleUtils {
         }
 
         final String[] segments = str.split("_", -1);
-        final int segmentCount = segments.length -1;
         final String language = segments[0];
-        if (segmentCount == 1) {
-            if (isISO639LanguageCode(language) && isISO3166CountryCode(segments[1]) ||
-                    isNumericAreaCode(segments[1])) {
-                return new Locale(language, segments[1]);
+        if (segments.length == 2) {
+            final String country = segments[1];
+            if (isISO639LanguageCode(language) && isISO3166CountryCode(country) ||
+                    isNumericAreaCode(country)) {
+                return new Locale(language, country);
             }
-        } else if (segmentCount == 2) {
+        } else if (segments.length == 3) {
+            final String country = segments[1];
+            final String variant = segments[2];
             if (isISO639LanguageCode(language) &&
-                    (segments[1].length() == 0 || isISO3166CountryCode(segments[1])) &&
-                    segments[2].length() > 0) {
-                return new Locale(language, segments[1], segments[2]);
+                    (country.length() == 0 || isISO3166CountryCode(country)) &&
+                    variant.length() > 0) {
+                return new Locale(language, country, variant);
             }
         }
         throw new IllegalArgumentException("Invalid locale format: " + str);