From 3928caa1dd93ac273df9f93dd991883d3e980a60 Mon Sep 17 00:00:00 2001 From: tc-wleite Date: Wed, 29 May 2024 17:06:44 -0300 Subject: [PATCH] '#2232: Count items in parent categories and add to children's totals. --- .../java/iped/engine/data/IPEDSource.java | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/iped-engine/src/main/java/iped/engine/data/IPEDSource.java b/iped-engine/src/main/java/iped/engine/data/IPEDSource.java index 7819e955d6..ed8ac42264 100644 --- a/iped-engine/src/main/java/iped/engine/data/IPEDSource.java +++ b/iped-engine/src/main/java/iped/engine/data/IPEDSource.java @@ -421,29 +421,27 @@ private int countNumItems(Category category) { if (category.getNumItems() != -1) return category.getNumItems(); - if (!category.getChildren().isEmpty()) { - int num = 0; - for (Category child : category.getChildren()) { - num += countNumItems(child); - } - category.setNumItems(num); - - } else { - String query = IndexItem.CATEGORY + ":\"" + category.getName() + "\""; - IPEDSearcher searcher = new IPEDSearcher(this, query); - searcher.setNoScoring(true); - try { - if (this instanceof IPEDMultiSource) { - category.setNumItems(searcher.multiSearch().getLength()); - } else { - category.setNumItems(searcher.search().getLength()); - } + int num = 0; + for (Category child : category.getChildren()) { + num += countNumItems(child); + } - } catch (Exception e) { - e.printStackTrace(); + String query = IndexItem.CATEGORY + ":\"" + category.getName() + "\""; + IPEDSearcher searcher = new IPEDSearcher(this, query); + searcher.setNoScoring(true); + try { + if (this instanceof IPEDMultiSource) { + num += searcher.multiSearch().getLength(); + } else { + num += searcher.search().getLength(); } + + } catch (Exception e) { + e.printStackTrace(); } - return category.getNumItems(); + + category.setNumItems(num); + return num; } private void loadKeywords() {