MZXMLFile extends AbstractXMLBasedDataSource<MZXMLIndexElement, MZXMLIndex> { @Override public LCMSRunInfo parseRunInfo() throws FileParsingException { MZXMLRunHeaderParser parser = new MZXMLRunHeaderParser(this); return parser.parse(); } MZXMLFile(String path);  MZXMLFile(String path, boolean excludeEmptyScans); ObjectPool<XMLStreamReaderImpl> getReaderPool(); @Override MZXMLIndex getIndex(); @Override MZXMLIndex parseIndex(); @Override MZXMLIndex fetchIndex(); @Override LCMSRunInfo parseRunInfo(); @Override MZXMLMultiSpectraParser getSpectraParser(InputStream inputStream,
      LCMSDataSubset subset, ObjectPool<XMLStreamReaderImpl> readerPool, Integer numSpectra); @Override IndexBuilder<MZXMLIndexElement> getIndexBuilder(IndexBuilder.Info info);  }
@Test public void parseRunInfo() throws Exception { for (Path p : paths) { System.out.printf("\n\nReading run info from file: %s\n", p.getFileName()); final MZXMLFile mzxml = new MZXMLFile(p.toString()); final LCMSRunInfo runInfo = mzxml.fetchRunInfo(); System.out.printf("\tRun info: %s\n", runInfo); } }