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);