1 | package uk.co.zonetora.javacRunner; |
2 | |
3 | import java.io.IOException; |
4 | import java.util.HashMap; |
5 | import java.util.Map; |
6 | |
7 | import javax.tools.FileObject; |
8 | import javax.tools.ForwardingJavaFileManager; |
9 | import javax.tools.JavaFileManager; |
10 | import javax.tools.JavaFileObject; |
11 | import javax.tools.JavaFileObject.Kind; |
12 | |
13 | public class CachedOutputFileManager extends ForwardingJavaFileManager<JavaFileManager> { |
14 | |
15 | //private JavaClassOutputToString classFile; |
16 | private final Map<String,JavaClassOutputToByteArray> classFiles; |
17 | |
18 | public CachedOutputFileManager(JavaFileManager fileManager) { |
19 | super(fileManager); |
20 | classFiles = new HashMap<String, JavaClassOutputToByteArray>(); |
21 | } |
22 | |
23 | @Override |
24 | public JavaFileObject getJavaFileForOutput(Location location, |
25 | String className, Kind kind, FileObject sibling) throws IOException { |
26 | JavaClassOutputToByteArray classFile = new JavaClassOutputToByteArray(className); |
27 | classFiles.put(className + ".class",classFile); |
28 | return classFile; |
29 | } |
30 | |
31 | public Map<String,JavaClassOutputToByteArray> getClassFiles() { |
32 | return classFiles; |
33 | |
34 | } |
35 | |
36 | } |