@Override public JavaFileObject getJavaFileForOutput(Location location, String className, JavaFileObject.Kind kind, FileObject sibling) throws IOException { if (!hasLocation(location)) { throw new IllegalArgumentException(String.valueOf(location)); } final File root = new File (outputRoot); final String nameStr = FileObjects.convertPackage2Folder(className, File.separatorChar) + '.' + FileObjects.SIG; final File file = new File (root, nameStr); if (FileObjects.isValidFileName(className)) { return tx.createFileObject(location, file, root, null, null); } else { LOG.log( Level.WARNING, "Invalid class name: {0} sibling: {1}", //NOI18N new Object[]{ className, sibling }); return FileObjects.nullWriteFileObject(FileObjects.fileFileObject(file, root, null, null)); } }
sibling }); return FileObjects.nullWriteFileObject(FileObjects.fileFileObject(f, activeRoot, null, null));
@Override @NonNull JavaFileObject createFileObject( @NonNull final Location location, @NonNull final File file, @NonNull final File root, @NullAllowed final JavaFileFilterImplementation filter, @NullAllowed final Charset encoding) { InferableJavaFileObject ifo = FileObjects.fileFileObject(file, root, filter, encoding); return FileObjects.nullWriteFileObject(ifo); }
(T) FileObjects.nullWriteFileObject((InferableJavaFileObject)result); //safe - NullFileObject subclass of both JFO and FO.