Add the concept of "Project Name" to the RUNS table in the database.
[cfb.git] / prod / net / jaekl / cfb / analyze / Analysis.java
index 4e289e2366c4816a679dd0b39019b118b90fb2b7..81f4b89bad189a0722e89a2c28d3ebdd99d9636f 100644 (file)
@@ -2,46 +2,62 @@ package net.jaekl.cfb.analyze;
 
 // Copyright (C) 2015 Christian Jaekl
 
-import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.Date;
+
+import net.jaekl.cfb.xml.BugCollection;
+import net.jaekl.qd.xml.ParseErrorHandler;
+import net.jaekl.qd.xml.ParseHandler;
 
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;
 import org.xml.sax.helpers.XMLReaderFactory;
 
-import net.jaekl.cfb.xml.BugCollection;
-import net.jaekl.qd.util.InputStreamWrapper;
-import net.jaekl.qd.xml.ParseErrorHandler;
-import net.jaekl.qd.xml.ParseHandler;
-
 public class Analysis {
+       long m_id;
        BugCollection m_bugCollection;
+       String m_projectName;
+       String m_buildNumber;
+       long m_start;   // Date.getTime() when analysis was started
+       long m_end;
        
-       public Analysis() {
+       public Analysis(String projectName, String buildNumber) {
+               m_id = (-1);
                m_bugCollection = null;
+               m_projectName = projectName;
+               m_buildNumber = buildNumber;
+               m_start = new Date().getTime();
+               m_end = 0;
        }
        
        public BugCollection getBugCollection() { return m_bugCollection; }
+       public long getId() { return m_id; }
+       public String getProjectName() { return m_projectName; }
+       public String getBuildNumber() { return m_buildNumber; }
+       public Date getStart() { return new Date(m_start); }
+       public Date getEnd() { return (0 == m_end ? null : new Date(m_end)); }  // the end time (when FindBugs was done analyzing)
+
+       public void setBugCollection(BugCollection bugs) { m_bugCollection = bugs; }
+       public void setId(long id) { m_id = id; }
+       public void setStart(Date start) { m_start = start.getTime(); }
+       public void setEnd(Date date) { m_end = date.getTime(); }
        
-       public void parse(File xml) throws FileNotFoundException, IOException, SAXException 
+       public void parse(InputSource xml) throws FileNotFoundException, IOException, SAXException 
        {
                m_bugCollection = new BugCollection();
                
-               try (InputStreamWrapper isw = new InputStreamWrapper(new FileInputStream(xml))) 
-               {
-                   XMLReader reader = XMLReaderFactory.createXMLReader();
-                   ParseHandler ph = new ParseHandler(m_bugCollection);
-                   ParseErrorHandler peh = new ParseErrorHandler();
-                   reader.setContentHandler(ph);
-                   reader.setErrorHandler(peh);
-                   reader.parse(new InputSource(isw));
-               }
+           XMLReader reader = XMLReaderFactory.createXMLReader();
+           ParseHandler ph = new ParseHandler(m_bugCollection);
+           ParseErrorHandler peh = new ParseErrorHandler();
+           reader.setContentHandler(ph);
+           reader.setErrorHandler(peh);
+           reader.parse(xml);
        }
        
+       
        public void dump(PrintWriter pw)
        {
                if (null != m_bugCollection) {