summaryrefslogtreecommitdiffstats
path: root/base/java-tools/src/com/netscape
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2013-11-01 12:31:27 -0400
committerEndi S. Dewata <edewata@redhat.com>2013-11-01 14:06:30 -0400
commit5d8c611b8a5d82167f34ef4f60ac9655a747ef3b (patch)
treef308de58b60a1571f3feabe73a278256372045f1 /base/java-tools/src/com/netscape
parent86ef9b64cb0d71ace679881eacd2f6503afd954d (diff)
downloadpki-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.java41
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 {