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 string option is an option that contains a string value. 
009 *
010 * @author Johan Hall
011 * @since 1.0
012**/
013public 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}