public Map<String, FileDescriptor> parse(FileDescriptorSource fileDescriptorSource) throws IOException, DescriptorParserException {
Map<String, ProtoFile> fileMap = parseInternal(fileDescriptorSource.getFileDescriptors());
Map<String, FileDescriptor> fileDescriptorMap = new HashMap<>(fileMap.size());
for (String fileName : fileMap.keySet()) {
if (!fileDescriptorMap.containsKey(fileName)) {
FileDescriptor mapped = new ProtofileMapper(fileMap).map(fileMap.get(fileName));
fileDescriptorMap.put(fileName, mapped);
}
}
return fileDescriptorMap;
}