package uk.co.zonetora.javacRunner;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.tools.FileObject;
import javax.tools.ForwardingJavaFileManager;
import javax.tools.JavaFileManager;
import javax.tools.JavaFileObject;
import javax.tools.JavaFileObject.Kind;

public class CachedOutputFileManager extends ForwardingJavaFileManager<JavaFileManager> {

    //private JavaClassOutputToString classFile;
    private final Map<String,JavaClassOutputToByteArray> classFiles;
    
    public CachedOutputFileManager(JavaFileManager fileManager) {
        super(fileManager);
        classFiles = new HashMap<String, JavaClassOutputToByteArray>();
    }
    
    @Override
    public JavaFileObject getJavaFileForOutput(Location location,
            String className, Kind kind, FileObject sibling) throws IOException {        
        JavaClassOutputToByteArray classFile = new JavaClassOutputToByteArray(className);
        classFiles.put(className + ".class",classFile);
        return classFile;
    }
    
    public Map<String,JavaClassOutputToByteArray> getClassFiles() {
        return classFiles;
        
    }
    
}