langtools/src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java
changeset 939 38e24969c7e9
parent 867 1dff24b5f407
child 942 98e1d4f8aacd
equal deleted inserted replaced
938:13aae74ca013 939:38e24969c7e9
    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);