e2f090f32b0245c701532c27606d2c7b01c0d979
[cfb.git] / prod / net / jaekl / cfb / analyze / Analysis.java
1 package net.jaekl.cfb.analyze;
2
3 // Copyright (C) 2015 Christian Jaekl
4
5 import java.io.FileNotFoundException;
6 import java.io.IOException;
7 import java.io.PrintWriter;
8 import java.util.Date;
9
10 import net.jaekl.cfb.xml.BugCollection;
11 import net.jaekl.qd.xml.ParseErrorHandler;
12 import net.jaekl.qd.xml.ParseHandler;
13
14 import org.xml.sax.InputSource;
15 import org.xml.sax.SAXException;
16 import org.xml.sax.XMLReader;
17 import org.xml.sax.helpers.XMLReaderFactory;
18
19 public class Analysis {
20         BugCollection m_bugCollection;
21         String m_buildNumber;
22         Date m_date;    // Date/time when analysis was started
23         
24         public Analysis(String buildNumber) {
25                 m_bugCollection = null;
26                 m_buildNumber = buildNumber;
27                 m_date = new Date();
28         }
29         
30         public BugCollection getBugCollection() { return m_bugCollection; }
31         
32         public void parse(InputSource xml) throws FileNotFoundException, IOException, SAXException 
33         {
34                 m_bugCollection = new BugCollection();
35                 
36             XMLReader reader = XMLReaderFactory.createXMLReader();
37             ParseHandler ph = new ParseHandler(m_bugCollection);
38             ParseErrorHandler peh = new ParseErrorHandler();
39             reader.setContentHandler(ph);
40             reader.setErrorHandler(peh);
41             reader.parse(xml);
42         }
43         
44         public void dump(PrintWriter pw)
45         {
46                 if (null != m_bugCollection) {
47                         m_bugCollection.dump(pw, 2);
48                 }
49         }
50 }