]> git.mxchange.org Git - jcore.git/blobdiff - src/org/mxchange/jcore/contact/Gender.java
Moved members to proper location
[jcore.git] / src / org / mxchange / jcore / contact / Gender.java
index e28734ce36558a2217f56eae059b269b810e33d8..a66a6c71b8b9eaf26f18c94f9e44e7367f60f4bb 100644 (file)
@@ -16,6 +16,7 @@
  */
 package org.mxchange.jcore.contact;
 
+import java.text.MessageFormat;
 import org.mxchange.jcore.BaseFrameworkSystem;
 
 /**
@@ -24,19 +25,21 @@ import org.mxchange.jcore.BaseFrameworkSystem;
  * @author Roland Haeder
  */
 public enum Gender {
-
        /**
         * Unknown enum
         */
        UNKNOWN('U', "BaseContact.gender.unknown.text"),
+
        /**
         * Male enum
         */
        MALE('M', "BaseContact.gender.male.text"),
+
        /**
         * Female enum
         */
        FEMALE('F', "BaseContact.gender.female.text"),
+
        /**
         * Company enum
         */
@@ -47,33 +50,40 @@ public enum Gender {
         */
        private static char[] validChars;
 
+       /**
+        * Value being entered by ConsoleClient
+        */
+       private final char accessChar;
+
+       /**
+        * Output value (for messages)
+        */
+       private final String messageKey;
+
        /**
         * Getter for Gender enum from given character
         *
-        * @param gender Gender character
+        * @param c Gender character
         * @return Gender enum
         */
-       public static Gender fromChar (final char gender) {
+       public static Gender fromChar (final char c) {
+               // Init variable
                Gender g = null;
-               switch (gender) {
-                       case 'U': // Unknown
-                               g = UNKNOWN;
-                               break;
-
-                       case 'M': // Male
-                               g = MALE;
-                               break;
 
-                       case 'F': // Female
-                               g = FEMALE;
-                               break;
-
-                       case 'C': // Company
-                               g = COMPANY;
+               // Loop through all
+               for (final Gender gender : Gender.values()) {
+                       // Does the char match?
+                       if (c == gender.getAccessChar()) {
+                               // Found it
+                               g = gender;
                                break;
+                       }
+               }
 
-                       default: // Unsupported
-                               throw new IllegalArgumentException("gender " + gender + " is invalid.");
+               // Still null?
+               if (g == null) {
+                       // Didn't found a valid one
+                       throw new IllegalArgumentException(MessageFormat.format("Gender {0} is invalid.", c));
                }
 
                // Return it
@@ -93,17 +103,15 @@ public enum Gender {
                        return validChars;
                }
 
-               // Init array
+               // Init array, only 3 are valid as 'U' is UNKNOWN and is not valid.
                char[] valid = new char[3];
 
                // Get values
                int i = 0;
-               for (Object value : values()) {
-                       // First cast
-                       Gender gender = (Gender) value;
-
+               for (Gender gender : values()) {
                        // Debug message
                        //* NOISY-DEBUG: */ System.out.println("gender=" + gender);
+
                        // Is it UNKNOWN?
                        if (gender.equals(Gender.UNKNOWN)) {
                                // Skip this
@@ -112,7 +120,8 @@ public enum Gender {
 
                        // Debug message
                        //* NOISY-DEBUG: */ System.out.println(MessageFormat.format("gender={0} - adding at pos {1} ...", gender, i));
-                       // Get database value as this is also the access
+
+                       // Get access key as this is also the access
                        valid[i] = gender.getAccessChar();
 
                        // Increment index
@@ -126,16 +135,6 @@ public enum Gender {
                return valid;
        }
 
-       /**
-        * Value being entered by ConsoleClient
-        */
-       private final char accessChar;
-
-       /**
-        * Output value (for messages)
-        */
-       private final String messageKey;
-
        /**
         * Constructor
         *