blob: 857cc658f19f3d05a4f515de9700ae1f0667563b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 BEA Systems, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* wharley@bea.com - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.apt.core.internal.env;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Writer;
import com.sun.mirror.apt.Filer;
/**
* An implementation of com.sun.mirror.apt.Filer for use during reconcile phase.
* This implementation is able to generate new Java source types (though it
* does not lay them onto disk), but it silently ignores attempts to generate
* binary, text, or class files.
*/
final class ReconcileFilerImpl extends FilerImpl {
private final ReconcileEnv _env;
private static final OutputStream NO_OP_STREAM = new OutputStream(){
public void write(int b) throws IOException {
return;
}
};
private static final class NoOpWriter extends Writer{
public void write(char[] cbuf, int off, int len)
throws IOException {
return;
}
public void flush() throws IOException {
return;
}
public void close() throws IOException {
return;
}
}
public ReconcileFilerImpl(ReconcileEnv env) {
_env = env;
}
@Override
protected AbstractCompilationEnv getEnv() {
return _env;
}
private static final PrintWriter NO_OP_WRITER = new PrintWriter(new NoOpWriter());
public OutputStream createBinaryFile(Filer.Location loc, String pkg, File relPath)
throws IOException {
return NO_OP_STREAM;
}
public OutputStream createClassFile(String name) throws IOException {
return NO_OP_STREAM;
}
public PrintWriter createTextFile(Filer.Location loc, String pkg, File relPath, String charsetName)
throws IOException {
return NO_OP_WRITER;
}
}