package ca.uwaterloo.ece.qhanam.jrsrepair.compiler; import java.util.HashMap; import java.util.Map; import javax.tools.FileObject; import javax.tools.ForwardingJavaFileManager; import javax.tools.JavaCompiler; import javax.tools.JavaFileManager; import javax.tools.JavaFileObject.Kind; /** * From https://weblogs.java.net/blog/malenkov/archive/2008/12/how_to_compile.html */ public class MemoryFileManager extends ForwardingJavaFileManager<JavaFileManager> { public final Map<String, Output> map = new HashMap<String, Output>(); MemoryFileManager(JavaCompiler compiler) { super(compiler.getStandardFileManager(null, null, null)); } @Override public Output getJavaFileForOutput (Location location, String name, Kind kind, FileObject source) { Output mc = new Output(name, kind); this.map.put(name, mc); return mc; } }