summaryrefslogtreecommitdiffstats
path: root/args4j/args4j/src/org/kohsuke/args4j/spi/CharOptionHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'args4j/args4j/src/org/kohsuke/args4j/spi/CharOptionHandler.java')
-rw-r--r--args4j/args4j/src/org/kohsuke/args4j/spi/CharOptionHandler.java28
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);
+ }
+}