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 string option is an option that contains a string value. 
009     *
010     * @author Johan Hall
011     * @since 1.0
012    **/
013    public class StringOption extends Option {
014            private String defaultValue;
015            
016            /**
017             * Creates a string 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.
025             * @throws OptionException
026             */
027            public StringOption(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                    return new String(value);
042            }
043            
044            /* (non-Javadoc)
045             * @see org.maltparser.core.options.option.Option#getDefaultValueObject()
046             */
047            public Object getDefaultValueObject() throws MaltChainedException {
048                    return new String(defaultValue);
049            }
050    
051            /* (non-Javadoc)
052             * @see org.maltparser.core.options.option.Option#setDefaultValue(java.lang.String)
053             */
054            public void setDefaultValue(String defaultValue) {
055                    this.defaultValue = defaultValue;
056            }
057            
058            /* (non-Javadoc)
059             * @see org.maltparser.core.options.option.Option#getDefaultValueString()
060             */
061            public String getDefaultValueString() {
062                    return defaultValue;
063            }
064            
065            /* (non-Javadoc)
066             * @see org.maltparser.core.options.option.Option#getStringRepresentation(java.lang.Object)
067             */
068            public String getStringRepresentation(Object value) {
069                    if (value instanceof String) {
070                            return value.toString();
071                    }
072                    return null;
073            }
074            
075            /* (non-Javadoc)
076             * @see org.maltparser.core.options.option.Option#toString()
077             */
078            public String toString() {
079                    final StringBuilder sb = new StringBuilder();
080                    sb.append(super.toString());
081                    sb.append("-----------------------------------------------------------------------------\n");
082                    return sb.toString();
083            }
084    }