void report(IvyXmlWriter xw) { xw.begin("METHOD"); xw.field("NAME", method_name); xw.field("START", start_line); xw.field("END", end_line); xw.field("COUNT", called_count); xw.field("TOP", top_count); for (Map.Entry<String, Integer> ent : calls_counts.entrySet()) { xw.begin("CALLS"); xw.field("NAME", ent.getKey()); xw.field("COUNT", ent.getValue()); xw.end("CALLS"); } for (BlockCountData bcd : block_data.values()) { bcd.report(xw); } xw.end("METHOD"); }
MethodCountData(Element e) { class_name = null; method_name = computeMethodName(e); start_line = IvyXml.getAttrInt(e, "START"); end_line = IvyXml.getAttrInt(e, "END"); called_count = IvyXml.getAttrInt(e, "COUNT"); top_count = IvyXml.getAttrInt(e, "TOP"); calls_counts = new HashMap<String, Integer>(); block_data = new HashMap<Integer, BlockCountData>(); for (Element be : IvyXml.children(e, "CALLS")) { int ct = IvyXml.getAttrInt(be, "CALLCOUNT"); String nm = computeMethodName(be); calls_counts.put(nm, ct); } for (Element be : IvyXml.children(e, "BLOCK")) { BlockCountData bcd = new BlockCountData(be); block_data.put(bcd.getBlockIndex(), bcd); } }