From 9e4f312fe9c0820638503b40b5fcbb6571e23354 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 27 Jul 2007 17:29:33 +0000
Subject: [PATCH] Partial 95% fix for issue 1831 - dsconfig interactive mode.

---
 opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java b/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
index 7a99ff4..46ceafa 100644
--- a/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
+++ b/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
@@ -35,6 +35,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.SortedSet;
 import java.util.TreeSet;
 
 import org.opends.server.admin.DefinitionDecodingException;
@@ -250,6 +251,10 @@
     // Create the naming arguments.
     this.namingArgs = createNamingArgs(subCommand, path, false);
 
+    // Register common arguments.
+    registerAdvancedModeArgument(this.subCommand,
+        MSGID_DSCFG_DESCRIPTION_ADVANCED_SET, r.getUserFriendlyName());
+
     // Create the --set argument.
     this.propertySetArgument = new StringArgument(OPTION_DSCFG_LONG_SET,
         OPTION_DSCFG_SHORT_SET, OPTION_DSCFG_LONG_SET, false, true, true,
@@ -494,6 +499,36 @@
       }
     }
 
+    // Interactively set properties if applicable.
+    if (getConsoleApplication().isInteractive()) {
+      SortedSet<PropertyDefinition<?>> properties =
+        new TreeSet<PropertyDefinition<?>>();
+
+      for (PropertyDefinition<?> pd : d.getAllPropertyDefinitions()) {
+        if (pd.hasOption(PropertyOption.HIDDEN)) {
+          continue;
+        }
+
+        if (pd.hasOption(PropertyOption.READ_ONLY)) {
+          continue;
+        }
+
+        if (pd.hasOption(PropertyOption.MONITORING)) {
+          continue;
+        }
+
+        if (!isAdvancedMode() && pd.hasOption(PropertyOption.ADVANCED)) {
+          continue;
+        }
+
+        properties.add(pd);
+      }
+
+      PropertyValueReader reader =
+        new PropertyValueReader(getConsoleApplication());
+      reader.readAll(child, properties);
+    }
+
     try {
       // Confirm commit.
       String prompt = String.format(Messages.getString("modify.confirm"), d

--
Gitblit v1.10.0