From 18c9a1ce8c93b5c0b6bd6c8e44570758eeb6acc7 Mon Sep 17 00:00:00 2001
From: brinn <brinn>
Date: Tue, 28 Aug 2007 20:49:25 +0000
Subject: [PATCH] change: improve error message

SVN: 1522
---
 .../parser/AbstractParserObjectFactory.java    | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/common/source/java/ch/systemsx/cisd/common/parser/AbstractParserObjectFactory.java b/common/source/java/ch/systemsx/cisd/common/parser/AbstractParserObjectFactory.java
index 4b38e305641..26eca52fb3b 100644
--- a/common/source/java/ch/systemsx/cisd/common/parser/AbstractParserObjectFactory.java
+++ b/common/source/java/ch/systemsx/cisd/common/parser/AbstractParserObjectFactory.java
@@ -126,11 +126,25 @@ public abstract class AbstractParserObjectFactory<E> implements IParserObjectFac
         propertyNames.removeAll(propertyDescriptors.keySet());
         if (propertyNames.size() > 0)
         {
-            throw UserFailureException.fromTemplate("Following properties '%s' are not part of '%s'.", propertyNames,
-                    clazz.getSimpleName());
+            throw UserFailureException.fromTemplate("The following header columns are not part of '%s': %s",
+                    clazz.getSimpleName(), format(propertyNames));
         }
     }
 
+    private final String format(Set<String> set)
+    {
+        final StringBuilder builder = new StringBuilder();
+        for (String s : set)
+        {
+            builder.append("'");
+            builder.append(s);
+            builder.append("', ");
+        }
+        // Remove trailing ", "
+        builder.setLength(builder.length() - 2);
+        return builder.toString();
+    }
+    
     /**
      * Analyzes given <code>Class</code> and returns a <code>Map</code> containing the mandatory <code>Field</code>s
      * keyed by {@link Field#getName()}.
-- 
GitLab