From 9643d50e30607cbffc4b1cbab860c9421608b40f Mon Sep 17 00:00:00 2001
From: jcambon <jcambon@localhost>
Date: Tue, 25 Mar 2008 17:24:08 +0000
Subject: [PATCH] Configuration Reference generated doc: bug fix:  hidden relations not handled correctly in the "Relations to this component" and "Relation from this component" section   (e.g. for "Root DN", "Root DN user" should not appear).

---
 opends/src/server/org/opends/server/admin/doc/ConfigGuideGeneration.java |   45 +++++++++++++++++++++++++++++++--------------
 1 files changed, 31 insertions(+), 14 deletions(-)

diff --git a/opends/src/server/org/opends/server/admin/doc/ConfigGuideGeneration.java b/opends/src/server/org/opends/server/admin/doc/ConfigGuideGeneration.java
index 39fe769..42bf077 100644
--- a/opends/src/server/org/opends/server/admin/doc/ConfigGuideGeneration.java
+++ b/opends/src/server/org/opends/server/admin/doc/ConfigGuideGeneration.java
@@ -454,31 +454,48 @@
 
     // Relations
     if (!mo.getRelationDefinitions().isEmpty()) {
-      heading3("Relations From this Component");
-      paragraph(
-        "The following components have a direct composition relation FROM " +
-        mo.getUserFriendlyPluralName() + " :");
+      boolean emptyList = true;
       @SuppressWarnings("unchecked")
       Collection<RelationDefinition> rels = mo.getRelationDefinitions();
       for ( RelationDefinition rel : rels) {
-        beginList();
-        AbstractManagedObjectDefinition childRel = rel.getChildDefinition();
-        link(childRel.getUserFriendlyName().toString(), childRel.getName() +
-          ".html");
-        endList();
+        if (rel.hasOption(RelationOption.HIDDEN)) {
+          continue;
+        }
+        emptyList = false;
+      }
+      if (!emptyList) {
+        heading3("Relations From this Component");
+        paragraph(
+          "The following components have a direct composition relation FROM " +
+          mo.getUserFriendlyPluralName() + " :");
+        for ( RelationDefinition rel : rels) {
+          if (rel.hasOption(RelationOption.HIDDEN)) {
+            continue;
+          }
+          beginList();
+          AbstractManagedObjectDefinition childRel = rel.getChildDefinition();
+          link(childRel.getUserFriendlyName().toString(), childRel.getName() +
+            ".html");
+          endList();
+        }
       }
     }
+
     if (!mo.getReverseRelationDefinitions().isEmpty()) {
-      boolean isRoot = false;
+      boolean emptyList = true;
       @SuppressWarnings("unchecked")
       Collection<RelationDefinition> rels = mo.getReverseRelationDefinitions();
       for ( RelationDefinition rel : rels) {
-        // only check if it is not root
-        if (rel.getParentDefinition().getName().equals("")) {
-          isRoot = true;
+        if (rel.hasOption(RelationOption.HIDDEN)) {
+          continue;
         }
+        // check if it is not root
+        if (rel.getParentDefinition().getName().equals("")) {
+          continue;
+        }
+        emptyList = false;
       }
-      if (!isRoot) {
+      if (!emptyList) {
         heading3("Relations To this Component");
         paragraph(
           "The following components have a direct composition relation TO " +

--
Gitblit v1.10.0