public JavaFileObject getJavaFileForInput(Location location, String className, Kind kind) throws IOException { if (location == StandardLocation.SOURCE_PATH) { final String[] namePair = FileObjects.getPackageAndName (className); final List<Integer> pkglst = this.packages.get(namePair[0]); if (pkglst != null) { for (Integer id : pkglst) { final InferableJavaFileObject jfo = this.content.get (id); assert jfo != null; if (className.equals(jfo.inferBinaryName())) { return jfo; } } } } return null; }
public boolean unregister (final String fqn) { Parameters.notNull("fqn", fqn); final String[] pkgName = FileObjects.getPackageAndName (fqn); final List<Integer> ids = this.packages.get(pkgName[0]); for (Iterator<Integer> it = ids.iterator(); it.hasNext();) { final Integer id = it.next(); final InferableJavaFileObject jfo = this.content.get(id); assert jfo != null; if (fqn.equals(jfo.inferBinaryName())) { it.remove(); this.content.remove(id); return true; } } return false; }
/** * Returns a tuple {parentPath,simpleName} for given fully qualified name * @param fqn to get the parent name tuple for * @return a tuple {parentPath, simpleName} */ @NonNull public static String[] getParentRelativePathAndName (@NonNull final String fqn) { final String[] result = getPackageAndName(fqn); result[0] = result[0].replace('.',NBFS_SEPARATOR_CHAR); //NOI18N return result; }
@Override public JavaFileObject getJavaFileForOutput(Location location, String className, JavaFileObject.Kind kind, javax.tools.FileObject sibling) throws IOException { assertLocation(location, true); final String[] ncs = FileObjects.getPackageAndName(className); return new MemOutFileObject( ncs[0], String.format("%s%s", ncs[1], kind.extension)); }
public boolean register (final InferableJavaFileObject jfo) { Parameters.notNull("jfo", jfo); final String inferedName = jfo.inferBinaryName(); final String[] pkgName = FileObjects.getPackageAndName (inferedName); List<Integer> ids = this.packages.get(pkgName[0]); if (ids == null) { ids = new LinkedList<Integer>(); this.packages.put(pkgName[0], ids); } //Check for duplicate for (Iterator<Integer> it = ids.iterator(); it.hasNext();) { final Integer id = it.next(); final InferableJavaFileObject rfo = this.content.get(id); assert rfo != null; if (inferedName.equals(rfo.inferBinaryName())) { this.content.put(id, jfo); return true; } } //Todo: add final Integer id = currentId.getAndIncrement(); this.content.put(id, jfo); ids.add(id); return false; }
srcRoot)); final String[] ncs = FileObjects.getPackageAndName( FileObjects.convertFolder2Package(FileObjects.stripExtension(path))); final JavaFileObject toCompile = FileObjects.memoryFileObject(