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 * An integer option is an option that can only contain an integer value. 009 * 010 * @author Johan Hall 011 * @since 1.0 012**/ 013public 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}