mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noel Rouvignac
05.17.2015 1fe92b6d4d1f2b4e3e9cb124278717afc0f85dcc
OPENDJ-1242 (CR-5982) Enable dsconfig to generate doc for properties changed through subcommand options

Further improvements after CR-5982.

DSConfig.java:
In appendUsage(), excluded HelpSubCommandHandler + found a better API to access the correct data (previous data were incorrect).

SubCommandArgumentParser.java:
Do not unnecessarily create StringBuilders appended to other StringBuilders.
2 files modified
28 ■■■■ changed files
opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java 11 ●●●● patch | view | raw | blame | history
opendj-config/src/main/java/org/forgerock/opendj/config/dsconfig/DSConfig.java 17 ●●●● patch | view | raw | blame | history
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();
    }
}
opendj-config/src/main/java/org/forgerock/opendj/config/dsconfig/DSConfig.java
@@ -157,12 +157,11 @@
        @Override
        public void appendUsage(StringBuilder sb, SubCommand sc, String argLongID) {
            final SubCommandHandler sch = handlers.get(sc);
            if (sch instanceof HelpSubCommandHandler) {
                return;
            }
            final RelationDefinition<?, ?> rd = getRelationDefinition(sch);
            if (rd instanceof InstantiableRelationDefinition) {
                final PropertyDefinition<?> pd =
                        ((InstantiableRelationDefinition<?, ?>) rd).getNamingPropertyDefinition();
                if (pd != null) {
                    final AbstractManagedObjectDefinition<?, ?> defn = pd.getManagedObjectDefinition();
            final AbstractManagedObjectDefinition<?, ?> defn = rd.getChildDefinition();
                    final List<PropertyDefinition<?>> props =
                            new ArrayList<PropertyDefinition<?>>(defn.getAllPropertyDefinitions());
                    Collections.sort(props);
@@ -173,8 +172,6 @@
                    sb.append(EOL);
                    toVariableList(props, defn, propPrefix, sb);
                }
            }
        }
        private RelationDefinition<?, ?> getRelationDefinition(final SubCommandHandler sch) {
            if (sch instanceof CreateSubCommandHandler) {
@@ -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>");