diff options
author | Cedric Beust <cedric@beust.com> | 2012-09-17 23:01:04 -0700 |
---|---|---|
committer | Cedric Beust <cedric@beust.com> | 2012-09-17 23:01:04 -0700 |
commit | c421118d3104c0594dbe207c8443e51022422d32 (patch) | |
tree | 5b458560266ffd8800a719b312a3f47decc93363 /src/main/java/com/beust/jcommander | |
parent | 8a4c3d11d8d74628fbe55dce61771810a841723e (diff) | |
download | platform_external_jcommander-c421118d3104c0594dbe207c8443e51022422d32.tar.gz platform_external_jcommander-c421118d3104c0594dbe207c8443e51022422d32.tar.bz2 platform_external_jcommander-c421118d3104c0594dbe207c8443e51022422d32.zip |
Added JCommander#setNoThrow() and JCommander#getUnknownArgs().
Diffstat (limited to 'src/main/java/com/beust/jcommander')
-rw-r--r-- | src/main/java/com/beust/jcommander/JCommander.java | 46 | ||||
-rw-r--r-- | src/main/java/com/beust/jcommander/internal/Lists.java | 5 |
2 files changed, 38 insertions, 13 deletions
diff --git a/src/main/java/com/beust/jcommander/JCommander.java b/src/main/java/com/beust/jcommander/JCommander.java index 8965f3b..f1717be 100644 --- a/src/main/java/com/beust/jcommander/JCommander.java +++ b/src/main/java/com/beust/jcommander/JCommander.java @@ -18,18 +18,6 @@ package com.beust.jcommander; -import com.beust.jcommander.FuzzyMap.IKey; -import com.beust.jcommander.converters.IParameterSplitter; -import com.beust.jcommander.converters.NoConverter; -import com.beust.jcommander.converters.StringConverter; -import com.beust.jcommander.internal.Console; -import com.beust.jcommander.internal.DefaultConsole; -import com.beust.jcommander.internal.DefaultConverterFactory; -import com.beust.jcommander.internal.JDK6Console; -import com.beust.jcommander.internal.Lists; -import com.beust.jcommander.internal.Maps; -import com.beust.jcommander.internal.Nullable; - import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; @@ -50,6 +38,18 @@ import java.util.Locale; import java.util.Map; import java.util.ResourceBundle; +import com.beust.jcommander.FuzzyMap.IKey; +import com.beust.jcommander.converters.IParameterSplitter; +import com.beust.jcommander.converters.NoConverter; +import com.beust.jcommander.converters.StringConverter; +import com.beust.jcommander.internal.Console; +import com.beust.jcommander.internal.DefaultConsole; +import com.beust.jcommander.internal.DefaultConverterFactory; +import com.beust.jcommander.internal.JDK6Console; +import com.beust.jcommander.internal.Lists; +import com.beust.jcommander.internal.Maps; +import com.beust.jcommander.internal.Nullable; + /** * The main class for JCommander. It's responsible for parsing the object that contains * all the annotated fields, parse the command line and assign the fields with the correct @@ -149,6 +149,9 @@ public class JCommander { private int m_columnSize = 79; private boolean m_helpWasSpecified; + + private List<String> m_unknownArgs = Lists.newArrayList(); + private boolean m_noThrow; private static Console m_console; @@ -721,7 +724,16 @@ public class JCommander { } } } else { - throw new ParameterException("Unknown option: " + arg); + if (m_noThrow) { + m_unknownArgs.add(arg); + i++; + while (i < args.length && ! isOption(args, args[i])) { + m_unknownArgs.add(args[i++]); + } + increment = 0; + } else { + throw new ParameterException("Unknown option: " + arg); + } } } else { @@ -1545,6 +1557,14 @@ public class JCommander { m_allowAbbreviatedOptions = b; } + public void setNoThrow(boolean b) { + m_noThrow = b; + } + + public List<String> getUnknownArgs() { + return m_unknownArgs; + } + // public void setCaseSensitiveCommands(boolean b) { // m_caseSensitiveCommands = b; // } diff --git a/src/main/java/com/beust/jcommander/internal/Lists.java b/src/main/java/com/beust/jcommander/internal/Lists.java index c4017c0..fdbee55 100644 --- a/src/main/java/com/beust/jcommander/internal/Lists.java +++ b/src/main/java/com/beust/jcommander/internal/Lists.java @@ -19,6 +19,7 @@ package com.beust.jcommander.internal; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -33,6 +34,10 @@ public class Lists { return new ArrayList<K>(c); } + public static <K> List<K> newArrayList(K... c) { + return new ArrayList<K>(Arrays.asList(c)); + } + public static <K> List<K> newArrayList(int size) { return new ArrayList<K>(size); } |