diff options
| author | Endi S. Dewata <edewata@redhat.com> | 2013-11-01 12:31:27 -0400 |
|---|---|---|
| committer | Endi S. Dewata <edewata@redhat.com> | 2013-11-01 14:06:30 -0400 |
| commit | 5d8c611b8a5d82167f34ef4f60ac9655a747ef3b (patch) | |
| tree | f308de58b60a1571f3feabe73a278256372045f1 /base/java-tools/src/com/netscape | |
| parent | 86ef9b64cb0d71ace679881eacd2f6503afd954d (diff) | |
| download | pki-5d8c611b8a5d82167f34ef4f60ac9655a747ef3b.tar.gz pki-5d8c611b8a5d82167f34ef4f60ac9655a747ef3b.tar.xz pki-5d8c611b8a5d82167f34ef4f60ac9655a747ef3b.zip | |
Added mechanism to deprecate CLI commands.
The CLI framework has been modified to support deprecating CLI
commands by adding @Deprecated to the class name.
Diffstat (limited to 'base/java-tools/src/com/netscape')
| -rw-r--r-- | base/java-tools/src/com/netscape/cmstools/cli/CLI.java | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/base/java-tools/src/com/netscape/cmstools/cli/CLI.java b/base/java-tools/src/com/netscape/cmstools/cli/CLI.java index abe0883b1..6bd7d69ab 100644 --- a/base/java-tools/src/com/netscape/cmstools/cli/CLI.java +++ b/base/java-tools/src/com/netscape/cmstools/cli/CLI.java @@ -18,6 +18,8 @@ package com.netscape.cmstools.cli; +import java.util.ArrayList; +import java.util.Collection; import java.util.LinkedHashMap; import java.util.Map; @@ -91,6 +93,10 @@ public class CLI { return parent; } + public boolean isDeprecated() { + return getClass().getAnnotation(Deprecated.class) != null; + } + public CLI getModule(String name) { return modules.get(name); } @@ -112,14 +118,25 @@ public class CLI { return null; } - public void printHelp() { + public Collection<CLI> getDeprecatedModules() { + Collection<CLI> list = new ArrayList<CLI>(); + for (CLI module : modules.values()) { + if (!module.isDeprecated()) continue; + list.add(module); + } + return list; + } - System.out.println("Commands:"); + public void printHelp() { int leftPadding = 1; int rightPadding = 25; + System.out.println("Commands:"); + for (CLI module : modules.values()) { + if (module.isDeprecated()) continue; + String label = module.getFullName(); int padding = rightPadding - leftPadding - label.length(); @@ -131,6 +148,26 @@ public class CLI { System.out.print(StringUtils.repeat(" ", padding)); System.out.println(module.getDescription()); } + + Collection<CLI> deprecatedModules = getDeprecatedModules(); + + if (!deprecatedModules.isEmpty()) { + System.out.println(); + System.out.println("Deprecated:"); + + for (CLI module : deprecatedModules) { + String label = module.getFullName(); + + int padding = rightPadding - leftPadding - label.length(); + if (padding < 1) + padding = 1; + + System.out.print(StringUtils.repeat(" ", leftPadding)); + System.out.print(label); + System.out.print(StringUtils.repeat(" ", padding)); + System.out.println(module.getDescription()); + } + } } public void execute(String[] args) throws Exception { |
