1 package org.inigma.utopia;
2
3 public enum Rank {
4 Peasant("Mr.", "Mrs.", "Peasant", "Peasant"),
5 Knight("Sir", "Lady", "Knight", "Lady"),
6 Lord("Lord", "Noble Lady"),
7 Baron("Baron", "Baroness"),
8 Viscount("Viscount", "Viscountess"),
9 Count("Count", "Countess"),
10 Marquis("Marquis", "Marchioness"),
11 Duke("Duke", "Duchess"),
12 Prince("Prince", "Princess"),
13 Monarch("King", "Queen"),
14 Unknown("Unknown", "Unknown");
15
16 private String[] titles;
17
18 private Rank(String ... labels) {
19 this.titles = labels;
20 }
21
22 public String getTitle() {
23 return getTitle(true);
24 }
25
26 public String getTitle(boolean male) {
27 return titles[male ? 0 : 1];
28 }
29
30 public String[] getTitles() {
31 return titles;
32 }
33
34 public static boolean isMale(String title) {
35 for (Rank rank : Rank.values()) {
36 for (int i = 0; i < rank.titles.length; i++) {
37 if (rank.titles[i].equals(title)) {
38 return i % 2 == 0;
39 }
40 }
41 }
42 return true;
43 }
44 }