[NO ISSUE][FUN] Allow extensions to add aggregate functions

- user model changes: yes
- storage format changes: no
- interface changes: no

Details:
- Make aggregate function related methods public in BuiltInFunctions,
  so product extensions can register their own aggregate functions

Change-Id: I5bec031c833938e38c989acd7aa43b8e93669602
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2840
Reviewed-by: abdullah alamoudi <bamousaa@gmail.com>
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
index d2c8269..1df617e 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
@@ -2046,19 +2046,19 @@
         registeredFunctions.put(fi, functionInfo);
     }
 
-    private static void addAgg(FunctionIdentifier fi) {
+    public static void addAgg(FunctionIdentifier fi) {
         builtinAggregateFunctions.add(getAsterixFunctionInfo(fi));
     }
 
-    private static void addLocalAgg(FunctionIdentifier fi, FunctionIdentifier localfi) {
+    public static void addLocalAgg(FunctionIdentifier fi, FunctionIdentifier localfi) {
         aggregateToLocalAggregate.put(getAsterixFunctionInfo(fi), getAsterixFunctionInfo(localfi));
     }
 
-    private static void addIntermediateAgg(FunctionIdentifier fi, FunctionIdentifier globalfi) {
+    public static void addIntermediateAgg(FunctionIdentifier fi, FunctionIdentifier globalfi) {
         aggregateToIntermediateAggregate.put(getAsterixFunctionInfo(fi), getAsterixFunctionInfo(globalfi));
     }
 
-    private static void addGlobalAgg(FunctionIdentifier fi, FunctionIdentifier globalfi) {
+    public static void addGlobalAgg(FunctionIdentifier fi, FunctionIdentifier globalfi) {
         aggregateToGlobalAggregate.put(getAsterixFunctionInfo(fi), getAsterixFunctionInfo(globalfi));
         globalAggregateFunctions.add(getAsterixFunctionInfo(globalfi));
     }
@@ -2067,15 +2067,15 @@
         builtinUnnestingFunctions.put(getAsterixFunctionInfo(fi), returnsUniqueValues);
     }
 
-    private static void addSerialAgg(FunctionIdentifier fi, FunctionIdentifier serialfi) {
+    public static void addSerialAgg(FunctionIdentifier fi, FunctionIdentifier serialfi) {
         aggregateToSerializableAggregate.put(getAsterixFunctionInfo(fi), getAsterixFunctionInfo(serialfi));
     }
 
-    private static void addScalarAgg(FunctionIdentifier fi, FunctionIdentifier scalarfi) {
+    public static void addScalarAgg(FunctionIdentifier fi, FunctionIdentifier scalarfi) {
         scalarToAggregateFunctionMap.put(getAsterixFunctionInfo(scalarfi), getAsterixFunctionInfo(fi));
     }
 
-    private static void addDistinctAgg(FunctionIdentifier distinctfi, FunctionIdentifier regularscalarfi) {
+    public static void addDistinctAgg(FunctionIdentifier distinctfi, FunctionIdentifier regularscalarfi) {
         distinctToRegularScalarAggregateFunctionMap.put(getAsterixFunctionInfo(distinctfi),
                 getAsterixFunctionInfo(regularscalarfi));
     }