001package org.maltparser.core.options.option; 002 003import org.maltparser.core.exception.MaltChainedException; 004import org.maltparser.core.options.OptionException; 005import 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**/ 013public 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