@Override public void endVisitMember(IMemberDescriptor referencedMember) { if (this.currentmember.children.isEmpty()) { TreeMap<IMemberDescriptor, Member> map = this.currentreport.children.get(this.currenttype); map.remove(referencedMember); } if (this.currenttype.counts.getTotalRefCount() == 0) { IReferenceTypeDescriptor desc = getEnclosingDescriptor(referencedMember); if (desc != null) { this.keys.remove(desc); this.currentreport.children.remove(this.currenttype); } } }
@Override public boolean visitMember(IMemberDescriptor referencedMember) { IReferenceTypeDescriptor desc = getEnclosingDescriptor(referencedMember); if (desc == null) { return false; } this.currenttype = this.keys.get(desc); if (this.currenttype == null) { this.currenttype = new Type(desc); this.keys.put(desc, this.currenttype); } TreeMap<IMemberDescriptor, Member> map = this.currentreport.children.get(this.currenttype); if (map == null) { map = new TreeMap<>(compare); this.currentreport.children.put(this.currenttype, map); } this.currentmember = map.get(referencedMember); if (this.currentmember == null) { this.currentmember = new Member(referencedMember); map.put(referencedMember, this.currentmember); } return true; }