module Findbugs2Checkstyle::Convert
Public Instance Methods
fqcn_to_path(fqcn, xml)
click to toggle source
# File lib/findbugs_2_checkstyle/convert.rb, line 45 def fqcn_to_path(fqcn, xml) path = fqcn.gsub('.', '/').split("$").first + '.java' src_dirs = xml['BugCollection']['Project']['SrcDir'] unless src_dirs.is_a?(Array) src_dirs = [src_dirs] end src_dirs.find do |src| src.index(path) != nil end end
parse(xml)
click to toggle source
# File lib/findbugs_2_checkstyle/convert.rb, line 5 def parse(xml) Nori .new(parser: :rexml) .parse(xml) end
trans(xml)
click to toggle source
# File lib/findbugs_2_checkstyle/convert.rb, line 11 def trans(xml) print "xxxxx" 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 # create dummy 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