@Override
    public JavaFileObject getJavaFileForOutput(Location location, String className, Kind kind, FileObject sibling)
            throws IOException {
        if (kind != Kind.CLASS) {
            throw new IOException("Only class output supported, kind=" + kind);
        }
        try {
            MemoryOutputJavaFileObject output = new MemoryOutputJavaFileObject(new URI(className), kind);
            outputMap.put(className, output);
            return output;
        } catch (URISyntaxException e) {
            throw new IOException(e);
        }
    }