]> 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 2c415dd346f0a654f9df4f05aa7dfdc4f593cc75..a66a6c71b8b9eaf26f18c94f9e44e7367f60f4bb 100644 (file)
@@ -16,6 +16,7 @@
  */
 package org.mxchange.jcore.contact;
 
+import java.text.MessageFormat;
 import org.mxchange.jcore.BaseFrameworkSystem;
 
 /**
@@ -24,56 +25,65 @@ import org.mxchange.jcore.BaseFrameworkSystem;
  * @author Roland Haeder
  */
 public enum Gender {
-
        /**
         * Unknown enum
         */
-       UNKNOWN("U", "BaseContact.gender.unknown.text"),
+       UNKNOWN('U', "BaseContact.gender.unknown.text"),
+
        /**
         * Male enum
         */
-       MALE("M", "BaseContact.gender.male.text"),
+       MALE('M', "BaseContact.gender.male.text"),
+
        /**
         * Female enum
         */
-       FEMALE("F", "BaseContact.gender.female.text"),
+       FEMALE('F', "BaseContact.gender.female.text"),
+
        /**
         * Company enum
         */
-       COMPANY("C", "BaseContact.gender.company.text");
+       COMPANY('C', "BaseContact.gender.company.text");
 
        /**
         * Cache for valid chars
         */
        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,8 +120,9 @@ 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
-                       valid[i] = gender.getDatabaseValue().charAt(0);
+
+                       // Get access key as this is also the access
+                       valid[i] = gender.getAccessChar();
 
                        // Increment index
                        i++;
@@ -126,35 +135,25 @@ public enum Gender {
                return valid;
        }
 
-       /**
-        * Database value
-        */
-       private final String databaseValue;
-
-       /**
-        * Output value (for messages)
-        */
-       private final String messageKey;
-
        /**
         * Constructor
         *
-        * @param databaseValue Value being stored in database
+        * @param accessChar Value being entered by ConsoleClient
         * @param messageKey Message key for resource file
         */
-       private Gender (final String databaseValue, final String messageKey) {
+       private Gender (final char accessChar, final String messageKey) {
                // Set both
-               this.databaseValue = databaseValue;
+               this.accessChar = accessChar;
                this.messageKey = messageKey;
        }
 
        /**
         * Database value
         *
-        * @return the databaseValue
+        * @return the accessChar
         */
-       protected String getDatabaseValue () {
-               return this.databaseValue;
+       public char getAccessChar () {
+               return this.accessChar;
        }
 
        /**
@@ -162,7 +161,7 @@ public enum Gender {
         *
         * @return the messageKey
         */
-       protected String getMessageKey () {
+       public String getMessageKey () {
                return this.messageKey;
        }