@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; }