langtools/src/share/classes/com/sun/tools/javac/util/DiagnosticFormatter.java
changeset 939 38e24969c7e9
parent 867 1dff24b5f407
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.Collection;
    28 import javax.tools.JavaFileObject;
    29 import javax.tools.JavaFileObject;
    29 
    30 
    30 import com.sun.tools.javac.file.JavacFileManager;
    31 import com.sun.tools.javac.file.JavacFileManager;
    31 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticType;
    32 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticType;
    32 
    33 
   143                 sb.append(format_raw((JCDiagnostic) arg));
   144                 sb.append(format_raw((JCDiagnostic) arg));
   144                 sb.append(')');
   145                 sb.append(')');
   145             }
   146             }
   146             else if (arg instanceof JavaFileObject)
   147             else if (arg instanceof JavaFileObject)
   147                 sb.append(JavacFileManager.getJavacBaseFileName((JavaFileObject) arg));
   148                 sb.append(JavacFileManager.getJavacBaseFileName((JavaFileObject) arg));
       
   149             else if (arg instanceof Collection<?>)
       
   150                 sb.append(convert((Collection<?>)arg));
   148             else
   151             else
   149                 sb.append(arg);
   152                 sb.append(arg);
   150             sep = ", ";
   153             sep = ", ";
   151         }
   154         }
   152         return sb.toString();
   155         return sb.toString();
       
   156     }
       
   157 
       
   158     static <T> List<T> convert(Collection<T> c) {
       
   159         if (c instanceof List<?>)
       
   160             return (List<T>)c;
       
   161         else {
       
   162             List<T> l = List.<T>nil();
       
   163             for (T t : c) {
       
   164                 l = l.prepend(t);
       
   165             }
       
   166             return l.reverse();
       
   167         }
   153     }
   168     }
   154 
   169 
   155     private String format_std(JCDiagnostic d) {
   170     private String format_std(JCDiagnostic d) {
   156         DiagnosticSource source = d.getDiagnosticSource();
   171         DiagnosticSource source = d.getDiagnosticSource();
   157         DiagnosticType type = d.getType();
   172         DiagnosticType type = d.getType();