final File file = new File(getDestdir(), data.getHtmlFile());
file.getParentFile().mkdirs();
final PrintWriter out = new PrintWriter(new FileWriter(file));
try {
final PluginDescriptor descr = data.getDescriptor();
out.println("<html><head>");
out.println("<title>" + descr.getId() + "</title>");
out.println("<link rel='stylesheet' TYPE='text/css' href='../"
+ CSS_FILE + "'>");
out.println("</head><body>");
addToolbar(out, "../");
final String title;
if (descr.isFragment()) {
title = "Fragment summary";
} else {
title = "Plugin summary";
}
addSummaryTableHdr(out, title);
addTableRow(out, "Id", descr.getId());
addTableRow(out, "Name", descr.getName());
addTableRow(out, "Version", descr.getVersion().toString());
addTableRow(out, "Provider", formatProvider(descr));
addTableRow(out, "License", formatLicense(descr));
addTableRow(out, "Plugin class",
descr.hasCustomPluginClass() ? descr
.getCustomPluginClassName() : "-");
addTableRow(out, "Flags", formatFlags(descr));
endSummaryTableHdr(out);
if (descr.getPrerequisites().length > 0) {
addSummaryTableHdr(out, "Requires");
for (PluginPrerequisite prereq : descr.getPrerequisites()) {
final String href = prereq.getPluginReference().getId() + EXT;
final PluginData prereqData = getPluginData(prereq
.getPluginReference().getId());
final String name = (prereqData != null) ? prereqData
.getDescriptor().getName() : "?";
addTableRow(out, "<a href='" + href + "'>"
+ prereq.getPluginReference().getId() + "</a>", name);
}
endSummaryTableHdr(out);
}
final List<PluginData> requiredBy = getRequiredBy(descr.getId());
if (!requiredBy.isEmpty()) {
addSummaryTableHdr(out, "Required by");
for (PluginData reqBy : requiredBy) {
final String id = reqBy.getDescriptor().getId();
final String href = id + EXT;
final String name = reqBy.getDescriptor().getName();
addTableRow(out, "<a href='" + href + "'>" + id + "</a>",
name);
}
endSummaryTableHdr(out);
}
if (descr.getRuntime() != null) {
addSummaryTableHdr(out, "Libraries");
for (Library library : descr.getRuntime().getLibraries()) {
final String libName = library.getName();
final StringBuilder sb = new StringBuilder();
for (String export : library.getExports()) {
sb.append(export);
sb.append("<br/>");
}
for (String exclude : library.getExcludes()) {
sb.append("exclude: ");
sb.append(exclude);
sb.append("<br/>");
}
addTableRow(out, libName, sb.toString());
}
endSummaryTableHdr(out);
}
final ExtensionPoint[] epList = descr.getExtensionPoints();
if ((epList != null) && (epList.length > 0)) {
addSummaryTableHdr(out, "Extension points");
for (ExtensionPoint ep : epList) {
addTableRow(out, ep.getSimpleIdentifier(), ep.getName());
}
endSummaryTableHdr(out);
}
final Extension[] extList = descr.getExtensions();
if ((extList != null) && (extList.length > 0)) {
addSummaryTableHdr(out, "Extensions");
for (Extension ext : extList) {
final StringBuilder sb = new StringBuilder();