From f0cb2518dd0d89f006ad107f5e1392ae2ee78f10 Mon Sep 17 00:00:00 2001 From: Remko Popma Date: Sat, 14 Jan 2023 07:04:58 +0900 Subject: [PATCH] [#1915] improve default provider examples --- ...ava => MyPropertyDefaultProviderDemo.java} | 19 ++++++++++--------- .../SimpleDefaultProviderDemo.java | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) rename picocli-examples/src/main/java/picocli/examples/defaultprovider/{SimplePropertyDefaultProviderDemo.java => MyPropertyDefaultProviderDemo.java} (69%) diff --git a/picocli-examples/src/main/java/picocli/examples/defaultprovider/SimplePropertyDefaultProviderDemo.java b/picocli-examples/src/main/java/picocli/examples/defaultprovider/MyPropertyDefaultProviderDemo.java similarity index 69% rename from picocli-examples/src/main/java/picocli/examples/defaultprovider/SimplePropertyDefaultProviderDemo.java rename to picocli-examples/src/main/java/picocli/examples/defaultprovider/MyPropertyDefaultProviderDemo.java index 89f604146..e20e2c3df 100644 --- a/picocli-examples/src/main/java/picocli/examples/defaultprovider/SimplePropertyDefaultProviderDemo.java +++ b/picocli-examples/src/main/java/picocli/examples/defaultprovider/MyPropertyDefaultProviderDemo.java @@ -13,10 +13,10 @@ import java.util.Properties; import java.util.concurrent.TimeUnit; -@Command(name = "demo", mixinStandardHelpOptions = true, version = "3.9.3", - description = "Demonstrate parsing & type conversion", - defaultValueProvider = SimpleDefaultProvider.class) -public class SimplePropertyDefaultProviderDemo implements Runnable { // ... +@Command(name = "demo", mixinStandardHelpOptions = true, version = CommandLine.VERSION, + description = "Demonstrate property file based custom default provider", + defaultValueProvider = MyPropertyDefaultProvider.class) +public class MyPropertyDefaultProviderDemo implements Runnable { // ... @Option(names = "-x", description = "Print count. ${DEFAULT-VALUE} by default.") int x; @@ -32,11 +32,11 @@ public void run() { } public static void main(String[] args) { - new CommandLine(new SimplePropertyDefaultProviderDemo()).execute(args); + new CommandLine(new MyPropertyDefaultProviderDemo()).execute(args); } } -class PropertyDefaultProvider implements IDefaultValueProvider { +class MyPropertyDefaultProvider implements IDefaultValueProvider { private Properties properties; @Override @@ -48,8 +48,9 @@ public String defaultValue(ArgSpec argSpec) throws Exception { properties.load(reader); } } - return argSpec.isOption() - ? properties.getProperty(((OptionSpec) argSpec).longestName()) - : properties.getProperty(argSpec.paramLabel()); + String key = argSpec.isOption() + ? ((OptionSpec) argSpec).longestName() + : argSpec.paramLabel(); + return properties.getProperty(key); } } diff --git a/picocli-examples/src/main/java/picocli/examples/defaultprovider/SimpleDefaultProviderDemo.java b/picocli-examples/src/main/java/picocli/examples/defaultprovider/SimpleDefaultProviderDemo.java index 58b6d5e22..6eb8b7ace 100644 --- a/picocli-examples/src/main/java/picocli/examples/defaultprovider/SimpleDefaultProviderDemo.java +++ b/picocli-examples/src/main/java/picocli/examples/defaultprovider/SimpleDefaultProviderDemo.java @@ -32,7 +32,7 @@ public void run() { } public static void main(String[] args) { - new CommandLine(new SimplePropertyDefaultProviderDemo()).execute(args); + new CommandLine(new SimpleDefaultProviderDemo()).execute(args); } }