public Set<ClassData> extract(String location, InputStream stream) throws IOException {
final AtomicReference<String> className = new AtomicReference<String>();
final AtomicReference<String> packageName = new AtomicReference<String>();
ReaderHelper.readBufferedReader(stream, new BufferedReaderReader() {
@Override
public void read(BufferedReader reader) throws IOException {
for (String line = null; (line = reader.readLine()) != null;) {
if (packageName.get() == null) {
packageName.set(extractGroup(packagePattern, 1, line));