summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCedric Beust <cedric@beust.com>2012-11-10 11:30:30 -0800
committerCedric Beust <cedric@beust.com>2012-11-10 11:30:30 -0800
commit07e332d70768d2f49d835ccf65628d73d2d6703f (patch)
treeac52ee6828d54e1e66c2cc1979d2ec9a5214ee59 /src
parentd5490aabc6002f9400e5cf3050f098ab967253d2 (diff)
downloadplatform_external_jcommander-07e332d70768d2f49d835ccf65628d73d2d6703f.tar.gz
platform_external_jcommander-07e332d70768d2f49d835ccf65628d73d2d6703f.tar.bz2
platform_external_jcommander-07e332d70768d2f49d835ccf65628d73d2d6703f.zip
Fixed: GITHUB-137: Main parameters with a default value should be overridden if a main parameter is specified
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/beust/jcommander/JCommander.java21
-rw-r--r--src/test/java/com/beust/jcommander/JCommanderTest.java15
2 files changed, 20 insertions, 16 deletions
diff --git a/src/main/java/com/beust/jcommander/JCommander.java b/src/main/java/com/beust/jcommander/JCommander.java
index 4f2929e..1bc0084 100644
--- a/src/main/java/com/beust/jcommander/JCommander.java
+++ b/src/main/java/com/beust/jcommander/JCommander.java
@@ -75,6 +75,8 @@ public class JCommander {
*/
private List<Object> m_objects = Lists.newArrayList();
+ private boolean m_firstTimeMainParameter = true;
+
/**
* This field/method will contain whatever command line parameter is not an option.
* It is expected to be a List<String>.
@@ -913,6 +915,10 @@ public class JCommander {
}
m_mainParameter.set(m_mainParameterObject, result);
}
+ if (m_firstTimeMainParameter) {
+ result.clear();
+ m_firstTimeMainParameter = false;
+ }
return result;
}
@@ -1241,21 +1247,6 @@ public class JCommander {
}
}
- //
-// //
-// // Try to find a converter in the factory
-// //
-// IStringConverter<?> converter = null;
-// if (converterClass == null && m_converterFactories != null) {
-// // Mmmh, javac requires a cast here
-// converter = (IStringConverter) m_converterFactories.getConverter(type);
-// }
-
-// if (converterClass == null) {
-// throw new ParameterException("Don't know how to convert " + value
-// + " to type " + type + " (field: " + field.getName() + ")");
-// }
-
IStringConverter<?> converter;
Object result = null;
try {
diff --git a/src/test/java/com/beust/jcommander/JCommanderTest.java b/src/test/java/com/beust/jcommander/JCommanderTest.java
index 4a84496..4f67f9a 100644
--- a/src/test/java/com/beust/jcommander/JCommanderTest.java
+++ b/src/test/java/com/beust/jcommander/JCommanderTest.java
@@ -964,9 +964,22 @@ public class JCommanderTest {
Assert.assertEquals(jc.getUnknownOptions(), Lists.newArrayList("-a", "foo"));
}
+ /**
+ * GITHUB-137.
+ */
+ public void listArgShouldBeCleared() {
+ class Args {
+ @Parameter(description = "[endpoint]")
+ public List<String> endpoint = Lists.newArrayList("prod");
+ }
+ Args a = new Args();
+ new JCommander(a, new String[] { "dev" });
+ Assert.assertEquals(a.endpoint, Lists.newArrayList("dev"));
+ }
+
@Test(enabled = false)
public static void main(String[] args) throws Exception {
- new JCommanderTest().enumArgs();
+ new JCommanderTest().listParameters(); // listArgShouldBeCleared();
// class A {
// @Parameter(names = "-short", required = true)
// List<String> parameters;