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

Mark Craig
08.27.2015 9180d0010c9bbb96be48716a35056931c1b7caa3
CR-7184 OPENDJ-2104 Hide hidden items in config ref

This patch prevents generated man pages
from including hidden subcommands and relations.
2 files modified
47 ■■■■■ changed files
opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java 9 ●●●●● patch | view | raw | blame | history
opendj-config/src/main/java/org/forgerock/opendj/config/dsconfig/DSConfig.java 38 ●●●●● patch | view | raw | blame | history
opendj-cli/src/main/java/com/forgerock/opendj/cli/SubCommandArgumentParser.java
@@ -1185,6 +1185,9 @@
        }
        List<String> scUsageList = new ArrayList<>();
        for (SubCommand subCommand : subCommands) {
            if (subCommand.isHidden()) {
                continue;
            }
            if (scriptName.equals("dsconfig")) {
                scUsageList.add(getSubCommandListItem(scriptName, subCommand));
            } else {
@@ -1254,6 +1257,9 @@
            List<Map<String, Object>> options = new LinkedList<>();
            String nameOption = null;
            for (Argument a : subCommand.getArguments()) {
                if (a.isHidden()) {
                    continue;
                }
                // Return a generic FQDN for localhost as the default hostname
                // in reference documentation.
                if (isHostNameArgument(a)) {
@@ -1303,6 +1309,9 @@
     */
    private void appendSubCommandPages(StringBuilder builder, String scriptName, Collection<SubCommand> subCommands) {
        for (SubCommand subCommand : subCommands) {
            if (subCommand.isHidden()) {
                continue;
            }
            Map<String, Object> map = new HashMap<>();
            map.put("marker", "@@@" + scriptName + "-" + subCommand.getName() + "@@@");
            map.put("locale", Locale.getDefault().getLanguage());
opendj-config/src/main/java/org/forgerock/opendj/config/dsconfig/DSConfig.java
@@ -87,10 +87,12 @@
import org.forgerock.opendj.config.IPAddressPropertyDefinition;
import org.forgerock.opendj.config.InstantiableRelationDefinition;
import org.forgerock.opendj.config.IntegerPropertyDefinition;
import org.forgerock.opendj.config.ManagedObjectOption;
import org.forgerock.opendj.config.PropertyDefinition;
import org.forgerock.opendj.config.PropertyDefinitionVisitor;
import org.forgerock.opendj.config.PropertyOption;
import org.forgerock.opendj.config.RelationDefinition;
import org.forgerock.opendj.config.RelationOption;
import org.forgerock.opendj.config.RelativeInheritedDefaultBehaviorProvider;
import org.forgerock.opendj.config.SetRelationDefinition;
import org.forgerock.opendj.config.SizePropertyDefinition;
@@ -146,7 +148,7 @@
        public String getArgumentAdditionalInfo(SubCommand sc, Argument a, String nameOption) {
            StringBuilder sb = new StringBuilder();
            final AbstractManagedObjectDefinition<?, ?> defn = getManagedObjectDefinition(sc);
            if (defn == null) {
            if (isHidden(defn)) {
                return "";
            }
            if (doesHandleProperties(a)) {
@@ -158,8 +160,16 @@
            return sb.toString();
        }
        private boolean isHidden(AbstractManagedObjectDefinition defn) {
            return defn == null || defn.hasOption(ManagedObjectOption.HIDDEN);
        }
        private void listSubtypes(StringBuilder sb, SubCommand sc, Argument a,
                                  AbstractManagedObjectDefinition<?, ?> defn) {
            if (a.isHidden()) {
                return;
            }
            final LocalizableMessage placeholder = a.getValuePlaceholder();
            Map<String, Object> map = new HashMap<>();
@@ -170,7 +180,9 @@
            List<Map<String, Object>> children = new LinkedList<>();
            for (AbstractManagedObjectDefinition<?, ?> childDefn : getLeafChildren(defn)) {
                if (isHidden(childDefn)) {
                    continue;
                }
                Map<String, Object> child = new HashMap<>();
                child.put("name", childDefn.getName());
@@ -188,6 +200,9 @@
        }
        private boolean propertyExists(AbstractManagedObjectDefinition<?, ?> defn, String name) {
            if (isHidden(defn)) {
                return false;
            }
            try {
                return defn.getPropertyDefinition(name) != null;
            } catch (IllegalArgumentException e) {
@@ -199,12 +214,15 @@
        @Override
        public String getProperties(SubCommand sc) {
            final AbstractManagedObjectDefinition<?, ?> defn = getManagedObjectDefinition(sc);
            if (defn == null) {
            if (isHidden(defn)) {
                return "";
            }
            StringBuilder sb = new StringBuilder();
            for (AbstractManagedObjectDefinition<?, ?> childDefn : getLeafChildren(defn)) {
                if (isHidden(childDefn)) {
                    continue;
                }
                final List<PropertyDefinition<?>> props = new ArrayList<>(childDefn.getAllPropertyDefinitions());
                Collections.sort(props);
                Map<String, Object> map = new HashMap<>();
@@ -224,9 +242,17 @@
                return null;
            }
            final RelationDefinition<?, ?> rd = getRelationDefinition(sch);
            if (isHidden(rd)) {
                return null;
            }
            return rd.getChildDefinition();
        }
        private boolean isHidden(RelationDefinition defn) {
            return defn == null || defn.hasOption(RelationOption.HIDDEN);
        }
        private List<AbstractManagedObjectDefinition<?, ?>> getLeafChildren(
                AbstractManagedObjectDefinition<?, ?> defn) {
            final ArrayList<AbstractManagedObjectDefinition<?, ?>> results = new ArrayList<>();
@@ -272,6 +298,9 @@
            List<Map<String, Object>> properties = new LinkedList<>();
            for (PropertyDefinition<?> prop : props) {
                if (prop.hasOption(HIDDEN)) {
                    continue;
                }
                Map<String, Object> property = new HashMap<>();
                property.put("term", prop.getName());
                property.put("descTitle", REF_TITLE_DESCRIPTION.get());
@@ -406,6 +435,9 @@
                public String visitAggregation(AggregationPropertyDefinition prop, Void p) {
                    b.append(op);
                    final RelationDefinition<?, ?> rel = prop.getRelationDefinition();
                    if (isHidden(rel)) {
                        return null;
                    }
                    final String relFriendlyName = rel.getUserFriendlyName().toString();
                    b.append(REF_DSCFG_AGGREGATION.get(relFriendlyName)).append(". ");
                    final LocalizableMessage synopsis = prop.getSourceConstraintSynopsis();