in agent/src/jetbrains/buildServer/xmlReportPlugin/parsers/pmdCpd/PmdCpdXmlReportParser.java [29:75]
protected List<XmlHandler> getRootHandlers() {
return new ORHandler(elementsPath(
new Handler() {
public XmlReturn processElement(@NotNull final XmlElementInfo reader) {
myCallback.startDuplicates();
return reader.visitChildren(
elementsPath(new Handler() {
public XmlReturn processElement(@NotNull XmlElementInfo reader) {
final DuplicationResult duplicationResult
= new DuplicationResult(getInt(reader.getAttribute("lines")), getInt(reader.getAttribute("tokens")));
return reader.visitChildren(
elementsPath(new TextHandler() {
public void setText(@NotNull String s) {
duplicationResult.setHash(s.trim().hashCode());
}
}, "codefragment"),
elementsPath(new Handler() {
public XmlReturn processElement(@NotNull XmlElementInfo reader) {
duplicationResult.addFragment(new DuplicatingFragment(getRelativePath(reader.getAttribute("path")), getInt(reader.getAttribute("line"))));
return reader.noDeep();
}
}, "file")
).than(new XmlAction() {
public void apply() {
duplicationResult.setFragmentHashes();
myCallback.reportDuplicate(duplicationResult);
}
});
}
}, "duplication")
).than(new XmlAction() {
public void apply() {
myCallback.finishDuplicates();
}
});
}
},
"pmd-cpd")) {
@Override
protected void finished(final boolean matched) {
if (!matched) myCallback.error("Unexpected report format: root \"pmd-cpd\" element not present. Please check PMD CPD sources for the supported XML Schema");
}
}.asList();
}