11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/findbugs_2_checkstyle/convert.rb', line 11
def trans(xml)
require 'rexml/document'
doc = REXML::Document.new
doc << REXML::XMLDecl.new('1.0', 'UTF-8')
checkstyle = doc.add_element("checkstyle")
if xml['BugCollection']['BugInstance']
bugInstances = xml['BugCollection']['BugInstance'].is_a?(Array) ? xml['BugCollection']['BugInstance'] : [xml['BugCollection']['BugInstance']]
bugInstances.each do |bugInstance|
sourceLines = bugInstance['SourceLine'].is_a?(Array) ? bugInstance['SourceLine'] : [bugInstance['SourceLine']]
file = checkstyle.add_element("file", {
'name' => fqcn_to_path(sourceLines[sourceLines.length - 1]['@classname'], xml)
})
file.add_element("error", {
'line' => sourceLines[sourceLines.length - 1]['@start'],
'severity' => '',
'message' => "[#{bugInstance['@category']}] #{bugInstance['LongMessage']}"
})
end
else
dummy_src_dir = xml['BugCollection']['Project']['SrcDir']
if dummy_src_dir.is_a?(Array)
dummy_src_dir = dummy_src_dir.first
end
file = checkstyle.add_element("file", {
'name' => dummy_src_dir
})
end
doc
end
|