src/share/classes/com/sun/tools/javac/api/JavacTool.java

changeset 930
cb119107aeea
parent 893
8f0dcb9499db
child 944
83260b3305ac
equal deleted inserted replaced
929:e2890b8369f7 930:cb119107aeea
148 JavacMessages.instance(context).setCurrentLocale(locale); 148 JavacMessages.instance(context).setCurrentLocale(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 context.put(Log.outKey, new PrintWriter(System.err, true)); // FIXME
152 return new JavacFileManager(context, true, charset); 152 return new JavacFileManager(context, true, charset);
153 }
154
155 private boolean compilationInProgress = false;
156
157 /**
158 * Register that a compilation is about to start.
159 */
160 void beginContext(Context context) {
161 if (compilationInProgress)
162 throw new IllegalStateException("Compilation in progress");
163 compilationInProgress = true;
164 final JavaFileManager givenFileManager = context.get(JavaFileManager.class);
165 context.put(JavaFileManager.class, (JavaFileManager)null);
166 context.put(JavaFileManager.class, new Context.Factory<JavaFileManager>() {
167 public JavaFileManager make(Context c) {
168 if (givenFileManager != null) {
169 c.put(JavaFileManager.class, givenFileManager);
170 return givenFileManager;
171 } else {
172 return new JavacFileManager(c, true, null);
173 }
174 }
175 });
176 }
177
178 /**
179 * Register that a compilation is completed.
180 */
181 void endContext() {
182 compilationInProgress = false;
183 } 153 }
184 154
185 public JavacTask getTask(Writer out, 155 public JavacTask getTask(Writer out,
186 JavaFileManager fileManager, 156 JavaFileManager fileManager,
187 DiagnosticListener<? super JavaFileObject> diagnosticListener, 157 DiagnosticListener<? super JavaFileObject> diagnosticListener,

mercurial