OutlineJavaParser parses top-level declarations in
source to find declared classes, ignoring their bodies (which
must only have balanced braces). This is used to map class names to defining sources.
This is necessary even for Java, because the filename defining a non-public classes cannot be determined from the