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

Jean-Noel Rouvignac
08.41.2015 cbabf3a2b06c69420e7bb524c59afdd4669021e2
opendj-config/src/main/java/org/forgerock/opendj/config/dsconfig/CreateSubCommandHandler.java
@@ -251,10 +251,7 @@
            boolean isFirst = true;
            for (ManagedObjectDefinition<?, ?> mod : getSubTypes(d).values()) {
                // Only display advanced types and custom types in advanced mode.
                if (!app.isAdvancedMode()
                        && (mod.hasOption(ManagedObjectOption.ADVANCED)
                                || CLIProfile.getInstance().isForCustomization(mod))) {
                if (cannotDisplayAdvancedOrCustomTypes(app, mod)) {
                    continue;
                }
@@ -616,8 +613,7 @@
            if (app.isInteractive()) {
                SortedSet<PropertyDefinition<?>> properties = new TreeSet<>();
                for (PropertyDefinition<?> pd : d.getAllPropertyDefinitions()) {
                    if (pd.hasOption(PropertyOption.HIDDEN)
                            || (!app.isAdvancedMode() && pd.hasOption(PropertyOption.ADVANCED))) {
                    if (cannotDisplay(app, pd)) {
                        continue;
                    }
                    properties.add(pd);
@@ -707,6 +703,11 @@
        }
    }
    private static boolean cannotDisplay(ConsoleApplication app, PropertyDefinition<?> pd) {
        return pd.hasOption(PropertyOption.HIDDEN)
                || (!app.isAdvancedMode() && pd.hasOption(PropertyOption.ADVANCED));
    }
    /** Interactively create the child by prompting for the name. */
    private static <C extends ConfigurationClient, S
        extends Configuration> ManagedObject<? extends C> createChildInteractively(
@@ -813,17 +814,9 @@
        Iterator<ManagedObjectDefinition<? extends C, ? extends S>> i;
        for (i = filteredTypes.iterator(); i.hasNext();) {
            ManagedObjectDefinition<? extends C, ? extends S> cd = i.next();
            if (prohibitedTypes.contains(cd.getName())) {
                // Remove filtered types.
            if (prohibitedTypes.contains(cd.getName())
                    || cannotDisplayAdvancedOrCustomTypes(app, cd)) {
                i.remove();
            } else if (!app.isAdvancedMode()) {
                // Only display advanced types and custom types in advanced mode.
                if (cd.hasOption(ManagedObjectOption.ADVANCED)) {
                    i.remove();
                } else if (CLIProfile.getInstance().isForCustomization(cd)) {
                    i.remove();
                }
            }
        }
@@ -868,6 +861,13 @@
        }
    }
    /** Only display advanced types and custom types in advanced mode. */
    private static boolean cannotDisplayAdvancedOrCustomTypes(
            ConsoleApplication app, ManagedObjectDefinition<?, ?> defn) {
        return !app.isAdvancedMode()
                && (defn.hasOption(ManagedObjectOption.ADVANCED) || CLIProfile.getInstance().isForCustomization(defn));
    }
    /** The sub-commands naming arguments. */
    private final List<StringArgument> namingArgs;