From 1fe92b6d4d1f2b4e3e9cb124278717afc0f85dcc Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 05 Feb 2015 13:17:11 +0000
Subject: [PATCH] OPENDJ-1242 (CR-5982) Enable dsconfig to generate doc for properties changed through subcommand options

---
 opendj-config/src/main/java/org/forgerock/opendj/config/dsconfig/DSConfig.java  |   35 +++++++++++++++++------------------
 opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java |   11 +++++------
 2 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java b/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java
index 32b85ae..e06bd63 100644
--- a/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java
+++ b/opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java
@@ -1103,9 +1103,9 @@
     }
 
     /** Generate reference documentation for dsconfig subcommands. */
-    private void generateReferenceDoc(final StringBuilder buffer, Collection<SubCommand> values) {
+    private void generateReferenceDoc(final StringBuilder builder, Collection<SubCommand> values) {
         for (SubCommand s : values) {
-            buffer.append(toRefSect2(s));
+            toRefSect2(s, builder);
         }
     }
 
@@ -1160,16 +1160,16 @@
      *
      * @param sc
      *            The SubCommand containing reference information.
-     * @return Refsect2 representation of the subcommand.
+     * @param sb
+     *            The string builder where to output the Refsect2 representation of the subcommand
      */
-    private String toRefSect2(SubCommand sc) {
+    private void toRefSect2(SubCommand sc, StringBuilder sb) {
         final String scriptName = getScriptName();
         if (scriptName == null) {
             throw new RuntimeException("The script name should have been set via the environment property '"
                     + PROPERTY_SCRIPT_NAME + "'.");
         }
 
-        final StringBuilder sb = new StringBuilder();
         sb.append("<refsect2 xml:id=\"").append(scriptName).append("-").append(sc.getName()).append("\">").append(EOL);
         sb.append(" <title>dsconfig ").append(sc.getName()).append("</title>").append(EOL);
         sb.append(" <para>").append(sc.getDescription()).append("</para>").append(EOL);
@@ -1206,6 +1206,5 @@
         }
 
         sb.append("</refsect2>").append(EOL);
-        return sb.toString();
     }
 }
diff --git a/opendj-config/src/main/java/org/forgerock/opendj/config/dsconfig/DSConfig.java b/opendj-config/src/main/java/org/forgerock/opendj/config/dsconfig/DSConfig.java
index 3a403fd..4d04547 100644
--- a/opendj-config/src/main/java/org/forgerock/opendj/config/dsconfig/DSConfig.java
+++ b/opendj-config/src/main/java/org/forgerock/opendj/config/dsconfig/DSConfig.java
@@ -157,23 +157,20 @@
         @Override
         public void appendUsage(StringBuilder sb, SubCommand sc, String argLongID) {
             final SubCommandHandler sch = handlers.get(sc);
-            final RelationDefinition<?, ?> rd = getRelationDefinition(sch);
-            if (rd instanceof InstantiableRelationDefinition) {
-                final PropertyDefinition<?> pd =
-                        ((InstantiableRelationDefinition<?, ?>) rd).getNamingPropertyDefinition();
-                if (pd != null) {
-                    final AbstractManagedObjectDefinition<?, ?> defn = pd.getManagedObjectDefinition();
-                    final List<PropertyDefinition<?>> props =
-                            new ArrayList<PropertyDefinition<?>>(defn.getAllPropertyDefinitions());
-                    Collections.sort(props);
-
-                    final String propPrefix = getScriptName() + "-" + sc.getName() + "-" + argLongID + "-";
-                    sb.append(EOL);
-                    toSimpleList(props, propPrefix, sb);
-                    sb.append(EOL);
-                    toVariableList(props, defn, propPrefix, sb);
-                }
+            if (sch instanceof HelpSubCommandHandler) {
+                return;
             }
+            final RelationDefinition<?, ?> rd = getRelationDefinition(sch);
+            final AbstractManagedObjectDefinition<?, ?> defn = rd.getChildDefinition();
+            final List<PropertyDefinition<?>> props =
+                    new ArrayList<PropertyDefinition<?>>(defn.getAllPropertyDefinitions());
+            Collections.sort(props);
+
+            final String propPrefix = getScriptName() + "-" + sc.getName() + "-" + argLongID + "-";
+            sb.append(EOL);
+            toSimpleList(props, propPrefix, sb);
+            sb.append(EOL);
+            toVariableList(props, defn, propPrefix, sb);
         }
 
         private RelationDefinition<?, ?> getRelationDefinition(final SubCommandHandler sch) {
@@ -245,8 +242,10 @@
                 b.append(indent).append("    </variablelist>").append(EOL);
                 b.append(indent).append("  </listitem>").append(EOL);
             } else if (prop instanceof BooleanPropertyDefinition) {
-                b.append(indent).append("  <listitem><para>true</para></listitem>").append(EOL);
-                b.append(indent).append("  <listitem><para>false</para></listitem>").append(EOL);
+                b.append(indent).append("  <listitem>").append(EOL);
+                b.append(indent).append("    <para>true</para>").append(EOL);
+                b.append(indent).append("    <para>false</para>").append(EOL);
+                b.append(indent).append("  </listitem>").append(EOL);
             } else {
                 b.append(indent).append("  <listitem>").append(EOL);
                 b.append(indent).append("    <para>");

--
Gitblit v1.10.0