View Javadoc

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; // default to male when undecided
43      }
44  }