private void increaseEventCount(Map<String,Integer> eventCounts,Predicate<String> predicate){
  int impressionCount=eventCounts.getOrDefault("impression",0);
  int impressionUniqueCount=Math.min(impressionCount,1);
  int jointCounts=0;
  if (!predicate.test("click")) {
    jointCounts+=eventCounts.getOrDefault("click",0);
  }
  if (!predicate.test("love it")) {
    jointCounts+=eventCounts.getOrDefault("love it",0);
  }
  int jointUniqueCount=Math.min(jointCounts,1);
  impressionCounts.put("eventCount",impressionCounts.getOrDefault("eventCount",0) + impressionCount);
  impressionCounts.put("uniqueUserCount",impressionCounts.getOrDefault("uniqueUserCount",0) + impressionUniqueCount);
  jointActionCounts.put("eventCount",jointActionCounts.getOrDefault("eventCount",0) + jointCounts);
  jointActionCounts.put("uniqueUserCount",jointActionCounts.getOrDefault("uniqueUserCount",0) + jointUniqueCount);
}

private void increaseEventCount ( Map < String , Integer > eventCounts , Predicate < String > predicate ) { int impressionCount = eventCounts . getOrDefault ( "impression" , 0 ) ; int impressionUniqueCount = Math . min ( impressionCount , 1 ) ; int jointCounts = 0 ; if ( ! predicate . test ( "click" ) ) { jointCounts += eventCounts . getOrDefault ( "click" , 0 ) ; } if ( ! predicate . test ( "love it" ) ) { jointCounts += eventCounts . getOrDefault ( "love it" , 0 ) ; } int jointUniqueCount = Math . min ( jointCounts , 1 ) ; impressionCounts . put ( "eventCount" , impressionCounts . getOrDefault ( "eventCount" , 0 ) + impressionCount ) ; impressionCounts . put ( "uniqueUserCount" , impressionCounts . getOrDefault ( "uniqueUserCount" , 0 ) + impressionUniqueCount ) ; jointActionCounts . put ( "eventCount" , jointActionCounts . getOrDefault ( "eventCount" , 0 ) + jointCounts ) ; jointActionCounts . put ( "uniqueUserCount" , jointActionCounts . getOrDefault ( "uniqueUserCount" , 0 ) + jointUniqueCount ) ; }
this method is used to update the reference count of the actions
