From 1b042dfe84fb23f23c137a8b40170a3be10522ba Mon Sep 17 00:00:00 2001 From: Mark Davis Date: Thu, 15 Mar 2012 04:19:01 +0000 Subject: [PATCH] ICU-9125 addressed Markus's review comments. X-SVN-Rev: 31617 --- .../core/src/com/ibm/icu/util/GenderInfo.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/icu4j/main/classes/core/src/com/ibm/icu/util/GenderInfo.java b/icu4j/main/classes/core/src/com/ibm/icu/util/GenderInfo.java index 1b37adfc69c..393eeefa868 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/util/GenderInfo.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/util/GenderInfo.java @@ -67,11 +67,13 @@ public class GenderInfo { */ NEUTRAL, /** - * gender(all male) = male, gender(all female) = female, otherwise gender(list) = other + * gender(all male) = male, gender(all female) = female, otherwise gender(list) = other. + * In particular, any 'other' value makes the overall gender be 'other'. */ MIXED_NEUTRAL, /** - * gender(all female) = female, otherwise gender(list) = male + * gender(all female) = female, otherwise gender(list) = male. + * In particular, any 'other' value makes the overall gender be 'male'. */ MALE_TAINTS } @@ -83,9 +85,7 @@ public class GenderInfo { */ public static void setLocaleMapping(Map newULocaleToListGender) { localeToListGender.clear(); - for (Entry entry : newULocaleToListGender.entrySet()) { - localeToListGender.put(entry.getKey(), entry.getValue()); - } + localeToListGender.putAll(newULocaleToListGender); } /** @@ -112,7 +112,7 @@ public class GenderInfo { return genders.get(0); // degenerate case } switch(style) { - case MIXED_NEUTRAL: // gender(all male) = male, gender(all female) = female, otherwise gender(list) = other + case MIXED_NEUTRAL: boolean hasFemale = false; boolean hasMale = false; for (Gender gender : genders) { @@ -133,8 +133,9 @@ public class GenderInfo { return Gender.OTHER; } } - return hasMale ? Gender.MALE : hasFemale ? Gender.FEMALE : Gender.OTHER; - case MALE_TAINTS: // gender(all female) = female, otherwise gender(list) = male + return hasMale ? Gender.MALE : Gender.FEMALE; + // Note: any OTHER would have caused a return in the loop, which always happens. + case MALE_TAINTS: for (Gender gender : genders) { if (gender != Gender.FEMALE) { return Gender.MALE; -- 2.40.0