From 958cc0238cfb7c6c3f0b27dae66f63d4c5cf94a6 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Thu, 26 Jul 2007 12:01:44 +0000
Subject: [PATCH] Partial fix for issue 1831 - dsconfig interactive mode.

---
 opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SubCommandBuilder.java |   39 +++++++++++++++++++++++----------------
 1 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SubCommandBuilder.java b/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SubCommandBuilder.java
index 30dd180..665d789 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SubCommandBuilder.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SubCommandBuilder.java
@@ -61,6 +61,9 @@
   private static final class Visitor implements
       RelationDefinitionVisitor<Void, ManagedObjectPath<?, ?>> {
 
+    // The application.
+    private final ConsoleApplication app;
+
     // Any exception that occurred whilst creating the sub-commands.
     private ArgumentException exception = null;
 
@@ -74,7 +77,8 @@
     private final SubCommandArgumentParser parser;
 
     // Private constructor.
-    private Visitor(SubCommandArgumentParser parser) {
+    private Visitor(ConsoleApplication app, SubCommandArgumentParser parser) {
+      this.app = app;
       this.parser = parser;
     }
 
@@ -93,7 +97,7 @@
         handlers = new LinkedList<SubCommandHandler>();
 
         // We always need a help properties sub-command handler.
-        helpHandler = HelpSubCommandHandler.create(parser);
+        helpHandler = HelpSubCommandHandler.create(app, parser);
         handlers.add(helpHandler);
 
         processPath(ManagedObjectPath.emptyPath());
@@ -126,11 +130,11 @@
         ManagedObjectPath<?, ?> p) {
       try {
         // Create the sub-commands.
-        handlers.add(CreateSubCommandHandler.create(parser, p, r));
-        handlers.add(DeleteSubCommandHandler.create(parser, p, r));
-        handlers.add(ListSubCommandHandler.create(parser, p, r));
-        handlers.add(GetPropSubCommandHandler.create(parser, p, r));
-        handlers.add(SetPropSubCommandHandler.create(parser, p, r));
+        handlers.add(CreateSubCommandHandler.create(app, parser, p, r));
+        handlers.add(DeleteSubCommandHandler.create(app, parser, p, r));
+        handlers.add(ListSubCommandHandler.create(app, parser, p, r));
+        handlers.add(GetPropSubCommandHandler.create(app, parser, p, r));
+        handlers.add(SetPropSubCommandHandler.create(app, parser, p, r));
 
         // Process the referenced managed object definition and its
         // sub-types.
@@ -151,11 +155,11 @@
         ManagedObjectPath<?, ?> p) {
       try {
         // Create the sub-commands.
-        handlers.add(CreateSubCommandHandler.create(parser, p, r));
-        handlers.add(DeleteSubCommandHandler.create(parser, p, r));
-        handlers.add(ListSubCommandHandler.create(parser, p, r));
-        handlers.add(GetPropSubCommandHandler.create(parser, p, r));
-        handlers.add(SetPropSubCommandHandler.create(parser, p, r));
+        handlers.add(CreateSubCommandHandler.create(app, parser, p, r));
+        handlers.add(DeleteSubCommandHandler.create(app, parser, p, r));
+        handlers.add(ListSubCommandHandler.create(app, parser, p, r));
+        handlers.add(GetPropSubCommandHandler.create(app, parser, p, r));
+        handlers.add(SetPropSubCommandHandler.create(app, parser, p, r));
 
         // Process the referenced managed object definition and its
         // sub-types.
@@ -176,8 +180,8 @@
         ManagedObjectPath<?, ?> p) {
       try {
         // Create the sub-commands.
-        handlers.add(GetPropSubCommandHandler.create(parser, p, r));
-        handlers.add(SetPropSubCommandHandler.create(parser, p, r));
+        handlers.add(GetPropSubCommandHandler.create(app, parser, p, r));
+        handlers.add(SetPropSubCommandHandler.create(app, parser, p, r));
 
         // Process the referenced managed object definition and its
         // sub-types.
@@ -281,6 +285,8 @@
   /**
    * Get the set of sub-command handlers constructed by this builder.
    *
+   * @param app
+   *          The console application.
    * @param parser
    *          The sub-command argument parser.
    * @return Returns the set of sub-command handlers constructed by
@@ -289,8 +295,9 @@
    *           If a sub-command could not be created successfully.
    */
   public Collection<SubCommandHandler> getSubCommandHandlers(
-      SubCommandArgumentParser parser) throws ArgumentException {
-    Visitor v = new Visitor(parser);
+      ConsoleApplication app, SubCommandArgumentParser parser)
+      throws ArgumentException {
+    Visitor v = new Visitor(app, parser);
     return v.getSubCommandHandlers();
   }
 

--
Gitblit v1.10.0