package uk.co.zonetora.javacRunner;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URI;

import javax.tools.SimpleJavaFileObject;

public class JavaClassOutputToByteArray extends SimpleJavaFileObject {

    private final ByteArrayOutputStream cachedFile;
    
    public JavaClassOutputToByteArray(String name) {
        super(URI.create("string:///" + name.replace('.','/') + Kind.CLASS.extension), Kind.CLASS);
        this.cachedFile = new ByteArrayOutputStream(512);
    }
    
    @Override
    public OutputStream openOutputStream() throws IOException {
        return  cachedFile;
    }
    
    public byte[] getData() {
        return cachedFile.toByteArray();
    }
    
}