@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 Type2(desc); this.keys.put(desc, this.currenttype); } currentProducer.types.put(desc, currenttype); this.currentmember = new Member(referencedMember); this.currenttype.referencingMembers.put(referencedMember, currentmember); return true; }
@Override public void visitReference(IReferenceDescriptor reference) { IMemberDescriptor fromMember = reference.getMember(); if (!acceptReference(reference.getReferencedMember(), topatterns) || !acceptReference(fromMember, frompatterns)) { return; this.currentmember.children.put(refname, refs); refs.add(new Reference(fromMember, lineNumber, visibility, formatMessages(reference.getProblemMessages()))); switch (fromMember.getElementType()) { case IElementDescriptor.TYPE: {
@Override protected List<?> parse(IProgressMonitor monitor) throws Exception { SubMonitor subMon = SubMonitor.convert(monitor, 20); ListConsumersVisitor listVisitor = new ListConsumersVisitor(); UseScanParser lparser = new UseScanParser(); lparser.parse(getXmlLocation(), subMon.split(5), listVisitor); List<Consumer> consumerReports = new ArrayList<>(); ConsumerReportVisitor visitor = null; for (IComponentDescriptor consumer : listVisitor.consumers) { visitor = new ConsumerReportVisitor(consumer); lparser.parse(getXmlLocation(), null, visitor); if (visitor.consumer.counts.getTotalRefCount() > 0) { consumerReports.add(visitor.consumer); } } return consumerReports; }
@Override public void endVisitMember(IMemberDescriptor referencedMember) { if (this.currenttype.counts.getTotalRefCount() == 0) { IReferenceTypeDescriptor desc = getEnclosingDescriptor(referencedMember); if (desc != null) { this.keys.remove(desc); this.currentProducer.types.remove(desc); } } }