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 * An integer option is an option that can only contain an integer value.
009 *
010 * @author Johan Hall
011 * @since 1.0
012 **/
013 public class IntegerOption extends Option{
014 private int defaultValue = 0;
015
016 /**
017 * Creates an integer 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 (must be an integer value).
025 * @throws OptionException
026 */
027 public IntegerOption(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 try {
042 return new Integer(Integer.parseInt(value));
043 } catch (NumberFormatException e) {
044 throw new OptionException("Illegal integer value '"+value+"' for the '"+getName()+"' option. ", e);
045 }
046 }
047
048 /* (non-Javadoc)
049 * @see org.maltparser.core.options.option.Option#getDefaultValueObject()
050 */
051 public Object getDefaultValueObject() throws MaltChainedException {
052 return new Integer(defaultValue);
053 }
054
055 /* (non-Javadoc)
056 * @see org.maltparser.core.options.option.Option#setDefaultValue(java.lang.String)
057 */
058 public void setDefaultValue(String defaultValue) throws MaltChainedException {
059 try {
060 this.defaultValue = Integer.parseInt(defaultValue);
061 } catch (NumberFormatException e) {
062 throw new OptionException("Illegal integer default value '"+defaultValue+"' for the '"+getName()+"' option. ", e);
063 }
064 }
065
066 /* (non-Javadoc)
067 * @see org.maltparser.core.options.option.Option#getDefaultValueString()
068 */
069 public String getDefaultValueString() {
070 return Integer.toString(defaultValue);
071 }
072
073 /* (non-Javadoc)
074 * @see org.maltparser.core.options.option.Option#getStringRepresentation(java.lang.Object)
075 */
076 public String getStringRepresentation(Object value) {
077 if (value instanceof Integer) {
078 return value.toString();
079 }
080 return null;
081 }
082
083 /* (non-Javadoc)
084 * @see org.maltparser.core.options.option.Option#toString()
085 */
086 public String toString() {
087 final StringBuilder sb = new StringBuilder();
088 sb.append(super.toString());
089 sb.append("-----------------------------------------------------------------------------\n");
090 return sb.toString();
091 }
092 }