langtools/src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java
changeset 939 38e24969c7e9
parent 867 1dff24b5f407
child 942 98e1d4f8aacd
--- a/langtools/src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java	Thu Jul 24 11:12:41 2008 +0100
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java	Thu Jul 24 19:06:57 2008 +0100
@@ -25,12 +25,15 @@
 
 package com.sun.tools.javac.util;
 
+import java.util.ResourceBundle;
+import java.util.Collection;
 import java.util.Locale;
 import java.util.Map;
 
 import javax.tools.Diagnostic;
 import javax.tools.JavaFileObject;
 
+import com.sun.tools.javac.api.Formattable;
 import com.sun.tools.javac.file.JavacFileManager;
 import com.sun.tools.javac.tree.JCTree;
 
@@ -431,6 +434,12 @@
                 strings[i] = null;
             else if (arg instanceof JCDiagnostic)
                 strings[i] = ((JCDiagnostic) arg).getMessage(null);
+            else if (arg instanceof Collection<?>)
+                strings[i] = DiagnosticFormatter.convert((Collection<?>)arg).toString();
+            else if (arg instanceof Formattable) {
+                ResourceBundle rb = ResourceBundle.getBundle(messageBundleName);
+                strings[i] = ((Formattable)arg).toString(rb);
+            }
             else
                 strings[i] = arg.toString();
         }