package net.jaekl.cfb.analyze;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import net.jaekl.cfb.CfbBundle;
import net.jaekl.cfb.store.Location;
+import net.jaekl.cfb.util.Command;
import net.jaekl.cfb.xml.BugInstance;
import net.jaekl.cfb.xml.messages.BugPattern;
import net.jaekl.cfb.xml.messages.MessageCollection;
public class HtmlReport {
CfbBundle m_bundle;
+ Delta m_delta;
MessageCollection m_msgColl;
- public HtmlReport(CfbBundle bundle, MessageCollection msgColl)
+ public HtmlReport(CfbBundle bundle, MessageCollection msgColl, Delta delta)
{
m_bundle = bundle;
+ m_delta = delta;
m_msgColl = msgColl;
}
- public void write(File output, Delta delta) throws IOException
+ public Delta getDelta() { return m_delta; }
+
+ public void write(File output) throws IOException
{
- try ( FileOutputStream fos = new FileOutputStream(output);
- PrintWriter pw = new PrintWriter(fos); )
+ try ( PrintWriter pw = new PrintWriter(output, Command.UTF_8) )
{
- write(pw, delta);
+ write(pw);
+ pw.flush();
}
}
- void write(PrintWriter pw, Delta delta)
+ void write(PrintWriter pw)
{
- startPage(pw, delta);
+ startPage(pw);
}
- void startPage(PrintWriter pw, Delta delta)
+ void startPage(PrintWriter pw)
{
- writeHeader(pw, delta);
+ writeHeader(pw);
pw.println(" <BODY>");
- writeBody(pw, delta);
+ writeBody(pw);
pw.println(" </BODY>");
pw.println("</HTML>");
}
return m_bundle.get(key, arguments);
}
- void writeBody(PrintWriter pw, Delta delta)
+ void writeBody(PrintWriter pw)
{
- writeSummary(pw, delta);
- writeBugs(pw, CfbBundle.NEW_BUGS, delta.getNew());
- writeBugs(pw, CfbBundle.FIXED_BUGS, delta.getFixed());
- writeBugs(pw, CfbBundle.OLD_BUGS, delta.getCommon());
+ writeSummary(pw);
+ writeBugs(pw, CfbBundle.NEW_BUGS, m_delta.getNew());
+ writeBugs(pw, CfbBundle.FIXED_BUGS, m_delta.getFixed());
+ writeBugs(pw, CfbBundle.OLD_BUGS, m_delta.getCommon());
}
void writeBugLocations(PrintWriter pw, BugInstance bug)
}
}
- void writeHeader(PrintWriter pw, Delta delta)
+ void writeHeader(PrintWriter pw)
{
String title = trans(CfbBundle.CFB_REPORT);
pw.println(" </P>");
}
- void writeSummary(PrintWriter pw, Delta delta)
+ void writeSummary(PrintWriter pw)
{
final String SEP = ": ";
+ String earlierVersion = "";
+ if (null == m_delta.getEarlier()) {
+ earlierVersion = m_delta.getEarlier().constructVersionText(m_bundle);
+ }
+
writeSectionHeading(pw, trans(CfbBundle.CFB_REPORT));
pw.println(" <P>");
pw.println(" <TABLE>");
pw.println(" <TR>");
pw.println(" <TD CLASS=\"CategoryName\">" + trans(CfbBundle.NEW_VERSION) + SEP + "</TD>");
- pw.println(" <TD CLASS=\"CategoryValue\">" + delta.getLater().constructVersionText(m_bundle) + "</TD>");
+ pw.println(" <TD CLASS=\"CategoryValue\">" + m_delta.getLater().constructVersionText(m_bundle) + "</TD>");
pw.println(" </TR>");
pw.println(" <TR>");
pw.println(" <TD CLASS=\"CategoryName\">" + trans(CfbBundle.OLD_VERSION) + SEP + "</TD>");
- pw.println(" <TD CLASS=\"CategoryValue\">" + delta.getEarlier().constructVersionText(m_bundle) + "</TD>");
+ pw.println(" <TD CLASS=\"CategoryValue\">" + earlierVersion + "</TD>");
pw.println(" </TR>");
pw.println(" <TR><TD> </TD></TR>");
pw.println(" <TR>");
pw.println(" <TD CLASS=\"CategoryName\">" + trans(CfbBundle.NEW_BUGS) + SEP + "</TD>");
- pw.println(" <TD CLASS=\"CategoryValue\">" + trans(CfbBundle.NUM_BUGS, delta.getNumNew()) + "</TD>");
+ pw.println(" <TD CLASS=\"CategoryValue\">" + trans(CfbBundle.NUM_BUGS, m_delta.getNumNew()) + "</TD>");
pw.println(" </TR>");
pw.println(" <TR>");
pw.println(" <TD CLASS=\"CategoryName\">" + trans(CfbBundle.FIXED_BUGS) + SEP + "</TD>");
- pw.println(" <TD CLASS=\"CategoryValue\">" + trans(CfbBundle.NUM_BUGS, delta.getNumFixed()) + "</TD>");
+ pw.println(" <TD CLASS=\"CategoryValue\">" + trans(CfbBundle.NUM_BUGS, m_delta.getNumFixed()) + "</TD>");
pw.println(" </TR>");
pw.println(" <TR>");
pw.println(" <TD CLASS=\"CategoryName\">" + trans(CfbBundle.OLD_BUGS) + SEP + "</TD>");
- pw.println(" <TD CLASS=\"CategoryValue\">" + trans(CfbBundle.NUM_BUGS_OLD, delta.getNumCommon()) + "</TD>");
+ pw.println(" <TD CLASS=\"CategoryValue\">" + trans(CfbBundle.NUM_BUGS_OLD, m_delta.getNumCommon()) + "</TD>");
pw.println(" </TR>");
pw.println(" </TABLE>");
pw.println(" </P>");