23 * have any questions. |
23 * have any questions. |
24 */ |
24 */ |
25 |
25 |
26 package com.sun.tools.javac.util; |
26 package com.sun.tools.javac.util; |
27 |
27 |
|
28 import java.util.ResourceBundle; |
|
29 import java.util.Collection; |
28 import java.util.Locale; |
30 import java.util.Locale; |
29 import java.util.Map; |
31 import java.util.Map; |
30 |
32 |
31 import javax.tools.Diagnostic; |
33 import javax.tools.Diagnostic; |
32 import javax.tools.JavaFileObject; |
34 import javax.tools.JavaFileObject; |
33 |
35 |
|
36 import com.sun.tools.javac.api.Formattable; |
34 import com.sun.tools.javac.file.JavacFileManager; |
37 import com.sun.tools.javac.file.JavacFileManager; |
35 import com.sun.tools.javac.tree.JCTree; |
38 import com.sun.tools.javac.tree.JCTree; |
36 |
39 |
37 import static com.sun.tools.javac.util.JCDiagnostic.DiagnosticType.*; |
40 import static com.sun.tools.javac.util.JCDiagnostic.DiagnosticType.*; |
38 |
41 |
429 Object arg = args[i]; |
432 Object arg = args[i]; |
430 if (arg == null) |
433 if (arg == null) |
431 strings[i] = null; |
434 strings[i] = null; |
432 else if (arg instanceof JCDiagnostic) |
435 else if (arg instanceof JCDiagnostic) |
433 strings[i] = ((JCDiagnostic) arg).getMessage(null); |
436 strings[i] = ((JCDiagnostic) arg).getMessage(null); |
|
437 else if (arg instanceof Collection<?>) |
|
438 strings[i] = DiagnosticFormatter.convert((Collection<?>)arg).toString(); |
|
439 else if (arg instanceof Formattable) { |
|
440 ResourceBundle rb = ResourceBundle.getBundle(messageBundleName); |
|
441 strings[i] = ((Formattable)arg).toString(rb); |
|
442 } |
434 else |
443 else |
435 strings[i] = arg.toString(); |
444 strings[i] = arg.toString(); |
436 } |
445 } |
437 |
446 |
438 return messages.getLocalizedString(key, (Object[]) strings); |
447 return messages.getLocalizedString(key, (Object[]) strings); |