diff options
Diffstat (limited to 'args4j/args4j/src/org/kohsuke/args4j/spi/CharOptionHandler.java')
-rw-r--r-- | args4j/args4j/src/org/kohsuke/args4j/spi/CharOptionHandler.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/args4j/args4j/src/org/kohsuke/args4j/spi/CharOptionHandler.java b/args4j/args4j/src/org/kohsuke/args4j/spi/CharOptionHandler.java new file mode 100644 index 0000000..f2089d8 --- /dev/null +++ b/args4j/args4j/src/org/kohsuke/args4j/spi/CharOptionHandler.java @@ -0,0 +1,28 @@ +package org.kohsuke.args4j.spi; + +import org.kohsuke.args4j.CmdLineParser; +import org.kohsuke.args4j.OptionDef; +import org.kohsuke.args4j.CmdLineException; + +import java.text.MessageFormat; + +/** + * {@link Char} + * {@link OptionHandler} + * {@link OneArgumentOptionHandler} + * @author Jan Materne + * @since 2.0.9 + */ +public class CharOptionHandler extends OneArgumentOptionHandler<Character> { + + public CharOptionHandler(CmdLineParser parser, OptionDef option, Setter<? super Character> setter) { + super(parser, option, setter); + } + + @Override + protected Character parse(String argument) throws NumberFormatException, CmdLineException { + if (argument.length() != 1) + throw new CmdLineException(owner, Messages.ILLEGAL_CHAR.format(argument)); + return argument.charAt(0); + } +} |