X-Git-Url: http://jaekl.net/gitweb/?p=cfb.git;a=blobdiff_plain;f=prod%2Fnet%2Fjaekl%2Fcfb%2Fanalyze%2FAnalysis.java;h=81f4b89bad189a0722e89a2c28d3ebdd99d9636f;hp=e8a938aa33c33ea710f7149da80c1078fd897d47;hb=2769cf82ccae57ee3716aecc9bd694be1f115d92;hpb=08a530ef53cc4756f5e632b69c78830872ebd9f4 diff --git a/prod/net/jaekl/cfb/analyze/Analysis.java b/prod/net/jaekl/cfb/analyze/Analysis.java index e8a938a..81f4b89 100644 --- a/prod/net/jaekl/cfb/analyze/Analysis.java +++ b/prod/net/jaekl/cfb/analyze/Analysis.java @@ -1,5 +1,67 @@ package net.jaekl.cfb.analyze; +// Copyright (C) 2015 Christian Jaekl + +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; + 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(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(InputSource xml) throws FileNotFoundException, IOException, SAXException + { + m_bugCollection = new BugCollection(); + + 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) { + m_bugCollection.dump(pw, 2); + } + } }