From de19fe2956d5a4b3817834191c51989664f8c47c Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Mon, 03 Sep 2007 20:36:20 +0000
Subject: [PATCH] Fix issue 1443: Admin framework: improve error logging in server

---
 opends/src/server/org/opends/server/admin/client/MissingMandatoryPropertiesException.java |   56 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 33 insertions(+), 23 deletions(-)

diff --git a/opends/src/server/org/opends/server/admin/client/MissingMandatoryPropertiesException.java b/opends/src/server/org/opends/server/admin/client/MissingMandatoryPropertiesException.java
index 3ad6c90..288630e 100644
--- a/opends/src/server/org/opends/server/admin/client/MissingMandatoryPropertiesException.java
+++ b/opends/src/server/org/opends/server/admin/client/MissingMandatoryPropertiesException.java
@@ -26,14 +26,17 @@
  */
 
 package org.opends.server.admin.client;
-import org.opends.messages.Message;
 
 
 
+import static org.opends.messages.AdminMessages.*;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 
+import org.opends.messages.Message;
+import org.opends.messages.MessageBuilder;
 import org.opends.server.admin.OperationsException;
 import org.opends.server.admin.PropertyIsMandatoryException;
 import org.opends.server.util.Validator;
@@ -52,6 +55,34 @@
    */
   private static final long serialVersionUID = 6342522125252055588L;
 
+
+
+  // Create the message.
+  private static Message createMessage(
+      Collection<PropertyIsMandatoryException> causes) {
+    Validator.ensureNotNull(causes);
+    Validator.ensureTrue(!causes.isEmpty());
+
+    if (causes.size() == 1) {
+      return ERR_MISSING_MANDATORY_PROPERTIES_EXCEPTION_SINGLE.get(causes
+          .iterator().next().getPropertyDefinition().getName());
+    } else {
+      MessageBuilder builder = new MessageBuilder();
+
+      boolean isFirst = true;
+      for (PropertyIsMandatoryException cause : causes) {
+        if (!isFirst) {
+          builder.append(", ");
+        }
+        builder.append(cause.getPropertyDefinition().getName());
+        isFirst = false;
+      }
+
+      return ERR_MISSING_MANDATORY_PROPERTIES_EXCEPTION_PLURAL.get(builder
+          .toMessage());
+    }
+  }
+
   // The causes of this exception.
   private final Collection<PropertyIsMandatoryException> causes;
 
@@ -67,8 +98,7 @@
    */
   public MissingMandatoryPropertiesException(
       Collection<PropertyIsMandatoryException> causes) {
-    Validator.ensureNotNull(causes);
-    Validator.ensureTrue(!causes.isEmpty());
+    super(createMessage(causes));
 
     this.causes = new ArrayList<PropertyIsMandatoryException>(causes);
   }
@@ -98,24 +128,4 @@
     return Collections.unmodifiableCollection(causes);
   }
 
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Message getMessageObject() {
-    StringBuilder builder = new StringBuilder();
-    builder.append("The following properties are mandatory: ");
-    boolean isFirst = true;
-    for (PropertyIsMandatoryException e : causes) {
-      if (!isFirst) {
-        builder.append(", ");
-      }
-      builder.append(e.getPropertyDefinition().getName());
-      isFirst = false;
-    }
-    return Message.raw(builder.toString());
-  }
-
 }

--
Gitblit v1.10.0