ottlinger commented on code in PR #233:
URL: https://github.com/apache/creadur-rat/pull/233#discussion_r1564254665


##########
apache-rat-core/src/main/java/org/apache/rat/report/claim/impl/ClaimAggregator.java:
##########
@@ -19,84 +19,80 @@
 
 package org.apache.rat.report.claim.impl;
 
+import java.util.Map;
+
+import org.apache.rat.api.Document;
 import org.apache.rat.api.MetaData;
 import org.apache.rat.api.RatException;
+import org.apache.rat.license.ILicense;
+import org.apache.rat.license.ILicenseFamily;
 import org.apache.rat.report.claim.ClaimStatistic;
-
-import java.util.HashMap;
-import java.util.Map;
-
+import org.apache.rat.report.claim.ClaimStatistic.Counter;
 
 /**
- * The aggregator is used to create a numerical statistic
- * of claims.
+ * The aggregator is used to create a numerical statistic of claims.
  */
 public class ClaimAggregator extends AbstractClaimReporter {
     private final ClaimStatistic statistic;
-    private final Map<String, Integer> numsByLicenseFamilyName = new 
HashMap<>();
-    private final Map<String, Integer> numsByLicenseFamilyCode = new 
HashMap<>();
-    private final Map<String, Integer> numsByFileType = new HashMap<>();
-    private int numApproved, numUnApproved, numGenerated, numUnknown;
 
-    public ClaimAggregator(ClaimStatistic pStatistic) {
-        statistic = pStatistic;
+    /**
+     * Constructor.
+     * @param statistic The statistic to store the statistics in.
+     */
+    public ClaimAggregator(ClaimStatistic statistic) {
+        this.statistic = statistic;
     }
-    
-    private void incMapValue(Map<String, Integer> pMap, String pKey) {
-        final Integer num = pMap.get(pKey);
-        final int newNum;
+
+    private <T> void incMapValue(Map<T, int[]> map, T key, int value) {
+        final int[] num = map.get(key);
+
         if (num == null) {
-            newNum = 1;
+            map.put(key, new int[] { value });
         } else {
-            newNum = num + 1;
+            num[0] += value;
         }
-        pMap.put(pKey, newNum);
     }
-    
+
     @Override
-    protected void handleDocumentCategoryClaim(String documentCategoryName) {
-        incMapValue(numsByFileType, documentCategoryName);
+    protected void handleDocumentCategoryClaim(Document.Type documentType) {
+        incMapValue(statistic.getDocumentCategoryMap(), documentType, 1);
     }
 
     @Override
-    protected void handleApprovedLicenseClaim(String licenseApproved) {
-        if (MetaData.RAT_APPROVED_LICENSE_VALUE_TRUE.equals(licenseApproved)) {
-            numApproved++;
+    protected void handleApprovedLicenseClaim(MetaData metadata) {
+        incValueMap(statistic.getCounterMap(), 
ClaimStatistic.Counter.Approved, metadata.approvedLicenses().count());
+        incValueMap(statistic.getCounterMap(), 
ClaimStatistic.Counter.Unapproved,
+                metadata.unapprovedLicenses().count());
+    }
+
+    private void incValueMap(Map<Counter, int[]> map, Counter key, long value) 
{

Review Comment:
   Why do we use long here and shorten it to integer internally?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@creadur.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to