From bae9398cc148d37215ff0c6f2e2dcc347f4dc134 Mon Sep 17 00:00:00 2001
From: Mark Craig <mark.craig@forgerock.com>
Date: Thu, 12 Feb 2015 10:56:08 +0000
Subject: [PATCH] CR-6060 OPENDJ-1785 Add "extra" doc into code for generated content

---
 opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java b/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
index 57f234e..d5739e1 100644
--- a/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
+++ b/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
@@ -608,6 +608,35 @@
     }
 
     /**
+     * A supplement to the description for this tool
+     * intended for use in generated reference documentation.
+     */
+    private LocalizableMessage docToolDescriptionSupplement;
+
+    /**
+     * Retrieves a supplement to the description for this tool,
+     * intended for use in generated reference documentation.
+     *
+     * @return A supplement to the description for this tool
+     *         intended for use in generated reference documentation,
+     *         or LocalizableMessage.EMPTY if there is no supplement.
+     */
+    LocalizableMessage getDocToolDescriptionSupplement() {
+        return docToolDescriptionSupplement != null ? docToolDescriptionSupplement : LocalizableMessage.EMPTY;
+    }
+
+    /**
+     * Sets a supplement to the description for this tool,
+     * intended for use in generated reference documentation.
+     *
+     * @param docToolDescriptionSupplement  The supplement to the description for this tool
+     *                                      intended for use in generated reference documentation.
+     */
+    public void setDocToolDescriptionSupplement(final LocalizableMessage docToolDescriptionSupplement) {
+        this.docToolDescriptionSupplement = docToolDescriptionSupplement;
+    }
+
+    /**
      * Retrieves the set of unnamed trailing arguments that were provided on the
      * command line.
      *
@@ -647,6 +676,14 @@
         sb.append(" <title>").append(scriptName).append("</title>").append(EOL);
         sb.append(" <para>").append(getToolDescription()).append("</para>").append(EOL);
 
+        // If there is a supplement to the description for this utility,
+        // then it is formatted for use in generated reference documentation.
+        // In other words, it is already DocBook XML, so append it as is.
+        final LocalizableMessage toolDocDescriptionSupplement = getDocToolDescriptionSupplement();
+        if (!LocalizableMessage.EMPTY.equals(toolDocDescriptionSupplement)) {
+            sb.append(toolDocDescriptionSupplement.toString()).append(EOL);
+        }
+
         if (!argumentList.isEmpty()) {
             sb.append(" <variablelist>").append(EOL);
             for (Argument a : argumentList) {
@@ -669,6 +706,19 @@
                 sb.append("</option></term>").append(EOL);
                 sb.append("    <listitem>").append(EOL);
                 sb.append("      <para>").append(a.getDescription()).append("</para>").append(EOL);
+
+                final String defaultValue = a.getDefaultValue();
+                if (defaultValue != null && !defaultValue.isEmpty()) {
+                    sb.append("      <para>Default: ").append(defaultValue).append("</para>").append(EOL);
+                }
+
+                // If there is a supplement to the description for this argument,
+                // then for now it is already formatted in DocBook XML.
+                final LocalizableMessage aDocDescriptionSupplement = a.getDocDescriptionSupplement();
+                if (!LocalizableMessage.EMPTY.equals(aDocDescriptionSupplement)) {
+                    sb.append(aDocDescriptionSupplement.toString()).append(EOL);
+                }
+
                 sb.append("    </listitem>").append(EOL);
                 sb.append("  </varlistentry>").append(EOL);
             }

--
Gitblit v1.10.0