@Override public boolean includes(URL root, String resource) { assert this.cache[0].equals(root); return entry.includes(resource); }
folderName+='/'; //NOI18N if (entry == null || entry.includes(folderName)) { File folder = new File (this.root, folderName.replace('/', File.separatorChar)); //NOI18N if ((kinds == null || kinds.contains(fKind)) && f.isFile() && (entry == null || entry.includes(BaseUtilities.toURI(f).toURL()))) { result.add(FileObjects.fileFileObject( f,
@Override public Iterable<JavaFileObject> list(final Location l, final String packageName, final Set<JavaFileObject.Kind> kinds, final boolean recursive) { //Todo: Caching of results, needs listening on FS List<JavaFileObject> result = new ArrayList<JavaFileObject> (); String _name = packageName.replace('.','/'); //NOI18N if (_name.length() != 0) { _name+='/'; //NOI18N } for (ClassPath.Entry entry : this.sourceRoots.entries()) { if (ignoreExcludes || entry.includes(_name)) { FileObject root = entry.getRoot(); if (root != null) { FileObject tmpFile = root.getFileObject(_name); if (tmpFile != null && tmpFile.isFolder()) { Enumeration<? extends FileObject> files = tmpFile.getChildren (recursive); while (files.hasMoreElements()) { FileObject file = files.nextElement(); if (ignoreExcludes || entry.includes(file)) { final JavaFileObject.Kind kind = FileObjects.getKind(file.getExt()); if (kinds.contains(kind)) { result.add (FileObjects.sourceFileObject(file, root)); } } } } } } } return result; }
public Iterable<JavaFileObject> getFiles(String folderName, ClassPath.Entry entry, Set<JavaFileObject.Kind> kinds, JavaFileFilterImplementation filter) throws IOException { FileObject folder = root.getFileObject(folderName); if (folder == null || !(entry == null || entry.includes(folder))) { return Collections.<JavaFileObject>emptySet(); } FileObject[] children = folder.getChildren(); List<JavaFileObject> result = new ArrayList<JavaFileObject>(children.length); for (FileObject fo : children) { if (fo.isData() && (entry == null || entry.includes(fo))) { final Kind kind = FileObjects.getKind(fo.getExt()); if (kinds == null || kinds.contains (kind)) { JavaFileObject file; if (kind == Kind.CLASS) { file = FileObjects.fileObjectFileObject(fo, root, filter, null); } else { file = FileObjects.sourceFileObject(fo, root, filter,false); } result.add(file); } } } return result; }
@Override public JavaFileObject getJavaFileForInput (Location l, final String className, JavaFileObject.Kind kind) { String[] namePair = FileObjects.getParentRelativePathAndName (className); String ext = kind == JavaFileObject.Kind.CLASS ? FileObjects.SIG : kind.extension.substring(1); //tzezula: Clearly wrong in compile on save, but "class" is also wrong for (ClassPath.Entry entry : this.sourceRoots.entries()) { FileObject root = entry.getRoot(); if (root != null) { FileObject parent = root.getFileObject(namePair[0]); if (parent != null) { FileObject[] children = parent.getChildren(); for (FileObject child : children) { if (namePair[1].equals(child.getName()) && ext.equalsIgnoreCase(child.getExt()) && (ignoreExcludes || entry.includes(child))) { return FileObjects.sourceFileObject(child, root); } } } } } return null; }
private static boolean isIncluded (final ElementHandle<TypeElement> element, final ClasspathInfo cpInfo) { FileObject fobj = getFile (element,cpInfo); if (fobj == null) { //Not source return true; } ClassPath sourcePath = cpInfo.getClassPath(ClasspathInfo.PathKind.SOURCE); for (ClassPath.Entry e : sourcePath.entries()) { FileObject root = e.getRoot (); if (root != null && FileUtil.isParentOf(root,fobj)) { return e.includes(fobj); } } return true; }
private FileObject[] findFile (final String relativePath) { for (ClassPath.Entry entry : this.sourceRoots.entries()) { if (ignoreExcludes || entry.includes(relativePath)) { FileObject root = entry.getRoot(); if (root != null) { FileObject file = root.getFileObject(relativePath); if (file != null) { return new FileObject[] {file, root}; } } } } return null; }