26 package com.sun.tools.javac.api; |
26 package com.sun.tools.javac.api; |
27 |
27 |
28 import java.io.File; |
28 import java.io.File; |
29 import java.io.InputStream; |
29 import java.io.InputStream; |
30 import java.io.OutputStream; |
30 import java.io.OutputStream; |
|
31 import java.io.OutputStreamWriter; |
31 import java.io.PrintWriter; |
32 import java.io.PrintWriter; |
32 import java.io.Writer; |
33 import java.io.Writer; |
|
34 import java.nio.charset.Charset; |
33 import java.util.ArrayList; |
35 import java.util.ArrayList; |
34 import java.util.Collections; |
36 import java.util.Collections; |
35 import java.util.EnumSet; |
37 import java.util.EnumSet; |
36 import java.util.Iterator; |
38 import java.util.Iterator; |
37 import java.util.List; |
39 import java.util.List; |
47 import com.sun.tools.javac.main.Main; |
49 import com.sun.tools.javac.main.Main; |
48 import com.sun.tools.javac.main.RecognizedOptions.GrumpyHelper; |
50 import com.sun.tools.javac.main.RecognizedOptions.GrumpyHelper; |
49 import com.sun.tools.javac.main.RecognizedOptions; |
51 import com.sun.tools.javac.main.RecognizedOptions; |
50 import com.sun.tools.javac.util.Context; |
52 import com.sun.tools.javac.util.Context; |
51 import com.sun.tools.javac.util.Log; |
53 import com.sun.tools.javac.util.Log; |
52 import com.sun.tools.javac.util.JavacMessages; |
|
53 import com.sun.tools.javac.util.Options; |
54 import com.sun.tools.javac.util.Options; |
54 import com.sun.tools.javac.util.Pair; |
55 import com.sun.tools.javac.util.Pair; |
55 import java.nio.charset.Charset; |
|
56 |
56 |
57 /** |
57 /** |
58 * TODO: describe com.sun.tools.javac.api.Tool |
58 * TODO: describe com.sun.tools.javac.api.Tool |
59 * |
59 * |
60 * <p><b>This is NOT part of any supported API. |
60 * <p><b>This is NOT part of any supported API. |
143 public JavacFileManager getStandardFileManager( |
143 public JavacFileManager getStandardFileManager( |
144 DiagnosticListener<? super JavaFileObject> diagnosticListener, |
144 DiagnosticListener<? super JavaFileObject> diagnosticListener, |
145 Locale locale, |
145 Locale locale, |
146 Charset charset) { |
146 Charset charset) { |
147 Context context = new Context(); |
147 Context context = new Context(); |
148 JavacMessages.instance(context).setCurrentLocale(locale); |
148 context.put(Locale.class, locale); |
149 if (diagnosticListener != null) |
149 if (diagnosticListener != null) |
150 context.put(DiagnosticListener.class, diagnosticListener); |
150 context.put(DiagnosticListener.class, diagnosticListener); |
151 context.put(Log.outKey, new PrintWriter(System.err, true)); // FIXME |
151 PrintWriter pw = (charset == null) |
|
152 ? new PrintWriter(System.err, true) |
|
153 : new PrintWriter(new OutputStreamWriter(System.err, charset), true); |
|
154 context.put(Log.outKey, pw); |
152 return new JavacFileManager(context, true, charset); |
155 return new JavacFileManager(context, true, charset); |
153 } |
156 } |
154 |
157 |
155 public JavacTask getTask(Writer out, |
158 public JavacTask getTask(Writer out, |
156 JavaFileManager fileManager, |
159 JavaFileManager fileManager, |