1   /**
2    * Distribution License:
3    * JSword is free software; you can redistribute it and/or modify it under
4    * the terms of the GNU Lesser General Public License, version 2.1 as published by
5    * the Free Software Foundation. This program is distributed in the hope
6    * that it will be useful, but WITHOUT ANY WARRANTY; without even the
7    * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8    * See the GNU Lesser General Public License for more details.
9    *
10   * The License is available on the internet at:
11   *       http://www.gnu.org/copyleft/lgpl.html
12   * or by writing to:
13   *      Free Software Foundation, Inc.
14   *      59 Temple Place - Suite 330
15   *      Boston, MA 02111-1307, USA
16   *
17   * Copyright: 2008
18   *     The copyright to this program is held by it's authors.
19   *
20   * ID: $Id: org.eclipse.jdt.ui.prefs 1178 2006-11-06 12:48:02Z dmsmith $
21   */
22  package org.crosswire.common.options;
23  
24  /**
25   * An ArgumentType indicates whether and/or how an Option is followed by an
26   * argument.
27   * 
28   * @see gnu.lgpl.License for license details.<br>
29   *      The copyright to this program is held by it's authors.
30   * @author DM Smith [dmsmith555 at yahoo dot com]
31   */
32  public enum ArgumentType {
33      /**
34       * The option is not followed by an argument.
35       */
36      NO_ARGUMENT  ("NO"),
37  
38      /**
39       * The option is followed by an argument.
40       */
41      REQUIRED_ARGUMENT  ("Required"),
42  
43      /**
44       * The option may be followed by an argument.
45       */
46      OPTIONAL_ARGUMENT ("Optional");
47  
48      /**
49       * @param name
50       *            The name of the DataType
51       */
52      private ArgumentType(String name) {
53          this.name = name;
54      }
55  
56      /**
57       * Lookup method to convert from a String
58       */
59      public static ArgumentType fromString(String name) {
60          for (ArgumentType v : values()) {
61              if (v.name.equalsIgnoreCase(name)) {
62                  return v;
63              }
64          }
65  
66          // cannot get here
67          assert false;
68          return null;
69      }
70  
71      /* (non-Javadoc)
72       * @see java.lang.Enum#toString()
73       */
74      @Override
75      public String toString() {
76          return name;
77      }
78  
79      /**
80       * The name of the DataType
81       */
82      private String name;
83  }
84