use of org.jacoco.report.internal.xml.XMLElement in project jacoco by jacoco.
the class XmlDocumentation method main.
/**
* Called during the build process.
*
* @param args
* exactly one argument expected with the target location
* @throws IOException
* if XML document cannot be written
*/
public static void main(final String... args) throws IOException {
final File file = new File(args[0]);
file.getParentFile().mkdirs();
final XMLElement root = new XMLDocument("documentation", null, null, "UTF-8", true, new FileOutputStream(file));
for (final Command c : AllCommands.get()) {
writeCommand(c, root);
}
root.close();
}
use of org.jacoco.report.internal.xml.XMLElement in project jacoco by jacoco.
the class XmlDocumentation method writeOptions.
private static void writeOptions(final XMLElement parent, @SuppressWarnings("rawtypes") final List<OptionHandler> list) throws IOException {
for (final OptionHandler<?> o : list) {
final XMLElement optionNode = parent.element("option");
optionNode.attr("required", String.valueOf(o.option.required()));
optionNode.attr("multiple", String.valueOf(o.setter.isMultiValued()));
optionNode.element("usage").text(o.getNameAndMeta(null));
optionNode.element("description").text(o.option.usage());
}
}
use of org.jacoco.report.internal.xml.XMLElement in project jacoco by jacoco.
the class XmlDocumentation method writeCommand.
private static void writeCommand(final Command command, final XMLElement parent) throws IOException {
final CommandParser parser = new CommandParser(command);
final XMLElement element = parent.element("command");
element.attr("name", command.name());
element.element("usage").text(command.usage(parser));
element.element("description").text(command.description());
writeOptions(element, parser.getArguments());
writeOptions(element, parser.getOptions());
}
use of org.jacoco.report.internal.xml.XMLElement in project jacoco by jacoco.
the class XMLFormatter method createVisitor.
/**
* Creates a new visitor to write a report to the given stream.
*
* @param output
* output stream to write the report to
* @return visitor to emit the report data to
* @throws IOException
* in case of problems with the output stream
*/
public IReportVisitor createVisitor(final OutputStream output) throws IOException {
final XMLElement root = new XMLDocument("report", PUBID, SYSTEM, outputEncoding, true, output);
class RootVisitor extends XMLGroupVisitor implements IReportVisitor {
RootVisitor(final XMLElement element) throws IOException {
super(element, null);
}
private List<SessionInfo> sessionInfos;
public void visitInfo(final List<SessionInfo> sessionInfos, final Collection<ExecutionData> executionData) throws IOException {
this.sessionInfos = sessionInfos;
}
@Override
protected void handleBundle(final IBundleCoverage bundle, final ISourceFileLocator locator) throws IOException {
writeHeader(bundle.getName());
XMLCoverageWriter.writeBundle(bundle, element);
}
@Override
protected AbstractGroupVisitor handleGroup(final String name) throws IOException {
writeHeader(name);
return new XMLGroupVisitor(element, name);
}
private void writeHeader(final String name) throws IOException {
element.attr("name", name);
for (final SessionInfo i : sessionInfos) {
final XMLElement sessioninfo = root.element("sessioninfo");
sessioninfo.attr("id", i.getId());
sessioninfo.attr("start", i.getStartTimeStamp());
sessioninfo.attr("dump", i.getDumpTimeStamp());
}
}
@Override
protected void handleEnd() throws IOException {
element.close();
}
}
return new RootVisitor(root);
}
Aggregations