*/
package org.mxchange.jcore.contact;
+import java.text.MessageFormat;
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
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
// 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++;
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;
}
/**
*
* @return the messageKey
*/
- protected String getMessageKey () {
+ public String getMessageKey () {
return this.messageKey;
}