From 44ef916dcf74e46adbf7c2ae99643bd0e97c16e6 Mon Sep 17 00:00:00 2001 From: John Conwell Date: Fri, 6 Jun 2014 19:00:27 -0700 Subject: Adding functionality that allows commands to be hidden from usage output --- src/main/java/com/beust/jcommander/JCommander.java | 18 +++++++++++------- src/main/java/com/beust/jcommander/Parameters.java | 5 +++++ 2 files changed, 16 insertions(+), 7 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/com/beust/jcommander/JCommander.java b/src/main/java/com/beust/jcommander/JCommander.java index 3884976..5538661 100644 --- a/src/main/java/com/beust/jcommander/JCommander.java +++ b/src/main/java/com/beust/jcommander/JCommander.java @@ -1119,13 +1119,17 @@ public class JCommander { // The magic value 3 is the number of spaces between the name of the option // and its description for (Map.Entry commands : m_commands.entrySet()) { - ProgramName progName = commands.getKey(); - String dispName = progName.getDisplayName(); - out.append(indent).append(" " + dispName); // + s(spaceCount) + getCommandDescription(progName.name) + "\n"); - - // Options for this command - usage(progName.getName(), out, " "); - out.append("\n"); + Object arg = commands.getValue().getObjects().get(0); + Parameters p = arg.getClass().getAnnotation(Parameters.class); + if (!p.hidden()) { + ProgramName progName = commands.getKey(); + String dispName = progName.getDisplayName(); + out.append(indent).append(" " + dispName); // + s(spaceCount) + getCommandDescription(progName.name) + "\n"); + + // Options for this command + usage(progName.getName(), out, " "); + out.append("\n"); + } } } } diff --git a/src/main/java/com/beust/jcommander/Parameters.java b/src/main/java/com/beust/jcommander/Parameters.java index 9834ea0..f2e8c76 100644 --- a/src/main/java/com/beust/jcommander/Parameters.java +++ b/src/main/java/com/beust/jcommander/Parameters.java @@ -67,4 +67,9 @@ public @interface Parameters { * An array of allowed command names. */ String[] commandNames() default {}; + + /** + * If true, this command won't appear in the usage(). + */ + boolean hidden() default false; } -- cgit v1.2.3