INNER CODE UNIT · Java
loadDir
anggrayudi/android-hidden-api · cli/ClosureVerify.java:66
private static void loadDir(Path dir, Map<String, ClassNode> all) throws IOException {
List<Path> paths = new ArrayList<>();
try (Stream<Path> s = Files.walk(dir)) {
s.filter(p -> p.toString().endsWith(".class")).forEach(paths::add);
}
for (Path p : paths) {
try (InputStream in = Files.newInputStream(p)) {
ClassNode cn = read(in);
all.put(cn.name, cn);
}
}
}
/** Parses a class's header only (no code/frames/debug) — all we need is super + interfaces. */
public static ClassNode read(InputStream in) throws IOException {
ClassNode cn = new ClassNode();
new ClassReader(in).accept(cn, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES);
return cn;