View Javadoc

1   package com.aragost.javahg;
2   
3   /**
4    * Enum type to represent phases introduced in Mercurial 2.1
5    */
6   public enum Phase {
7   
8       PUBLIC, DRAFT, SECRET;
9   
10      /**
11       * Return the Phase that correspond to the specified text.
12       * <p>
13       * The text is what mercurial uses in the command output (i.e.
14       * public, draft, or secret).
15       * 
16       * @param s
17       * @return the Phase that correspond to the specified text. null is returned for the empty string.
18       * @throws IllegalArgumentException
19       *             if no phase correspond to the specified text
20       */
21      public static Phase fromText(String s) {
22          for (Phase p : Phase.values()) {
23              if (p.text.equals(s)) {
24                  return p;
25              }
26          }
27          if (s.equals("")) {
28              return null;
29          }
30          throw new IllegalArgumentException("No phase for " + s);
31      }
32  
33      private String text;
34  
35      private Phase() {
36          this.text = name().toLowerCase();
37      }
38  }