@Override
@NonNull
public synchronized Iterable<JavaFileObject> getFiles(
@NonNull String folderName,
@NullAllowed final ClassPath.Entry entry,
@NullAllowed Set<JavaFileObject.Kind> kinds,
@NullAllowed JavaFileFilterImplementation filter) throws IOException {
init();
final int[] pkgContent = data.get(folderName);
if (pkgContent == null || pkgContent == EMPTY_FOLDER) {
return Collections.emptyList();
}
final List<JavaFileObject> res = new ArrayList<>(pkgContent.length>>>1);
for (int i = 0; i < pkgContent.length; i+=2) {
final String name = getName(pkgContent[i], pkgContent[i+1]);
if (kinds == null || kinds.contains(FileObjects.getKind(FileObjects.getExtension(name)))) {
res.add(FileObjects.pathFileObject(
folderName,
name,
root,
rootURI,
null));
}
}
return res;
}