001 package org.maltparser.core.options.option;
002
003 import org.maltparser.core.exception.MaltChainedException;
004 import org.maltparser.core.options.OptionException;
005 import org.maltparser.core.options.OptionGroup;
006
007 /**
008 * A boolean option is an option that can only contain a boolean value (true or false).
009 *
010 * @author Johan Hall
011 * @since 1.0
012 **/
013 public class BoolOption extends Option{
014 private Boolean defaultValue;
015
016 /**
017 * Creates a boolean option description
018 *
019 * @param group a reference to the option group.
020 * @param name the name of the option.
021 * @param shortDescription a short description of the option.
022 * @param flag a short string that can be used in the command line.
023 * @param usage a string that explains the usage of the option.
024 * @param defaultValue a default value string (true or false).
025 * @throws OptionException
026 */
027 public BoolOption(OptionGroup group,
028 String name,
029 String shortDescription,
030 String flag,
031 String usage,
032 String defaultValue) throws MaltChainedException {
033 super(group, name, shortDescription, flag, usage);
034 setDefaultValue(defaultValue);
035 }
036
037 /* (non-Javadoc)
038 * @see org.maltparser.core.options.option.Option#getValueObject(java.lang.String)
039 */
040 public Object getValueObject(String value) throws MaltChainedException {
041 if (value.equalsIgnoreCase("true")) {
042 return new Boolean(true);
043 } else if (value.equalsIgnoreCase("false")) {
044 return new Boolean(false);
045 } else {
046 throw new OptionException("Illegal boolean value '"+value+"' for the '"+getName()+"' option. ");
047 }
048 }
049
050 public Object getDefaultValueObject() throws MaltChainedException {
051 return new Boolean(defaultValue);
052 }
053
054 public void setDefaultValue(String defaultValue) throws MaltChainedException {
055 if (defaultValue.equalsIgnoreCase("true")) {
056 this.defaultValue = true;
057 } else if (defaultValue.equalsIgnoreCase("false")) {
058 this.defaultValue = false;
059 } else {
060 throw new OptionException("Illegal boolean default value '"+defaultValue+"' for the '"+getName()+"' option. ");
061 }
062 }
063
064 public String getDefaultValueString() {
065 return defaultValue.toString();
066 }
067
068 public String getStringRepresentation(Object value) {
069 if (value instanceof Boolean) {
070 return value.toString();
071 }
072 return null;
073 }
074
075 public String toString() {
076 final StringBuilder sb = new StringBuilder();
077 sb.append(super.toString());
078 sb.append("-----------------------------------------------------------------------------\n");
079 return sb.toString();
080 }
081 }
082