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