Added changes to make the list of preloaded policy types configurable
[policy/api.git] / main / src / main / java / org / onap / policy / api / main / parameters / ApiParameterGroup.java
index 1b149d0..17f3f1a 100644 (file)
 
 package org.onap.policy.api.main.parameters;
 
+import java.util.ArrayList;
+import java.util.List;
+import org.onap.policy.common.endpoints.parameters.RestServerParameters;
 import org.onap.policy.common.parameters.GroupValidationResult;
 import org.onap.policy.common.parameters.ParameterGroup;
 import org.onap.policy.common.parameters.ValidationStatus;
 import org.onap.policy.common.utils.validation.ParameterValidationUtils;
+import org.onap.policy.models.provider.PolicyModelsProviderParameters;
 
 /**
  * Class to hold all parameters needed for Api component.
  *
  */
 public class ApiParameterGroup implements ParameterGroup {
+
     private String name;
     private RestServerParameters restServerParameters;
+    private PolicyModelsProviderParameters databaseProviderParameters;
+    private List<String> preloadPolicyTypes;
 
     /**
      * Create the api parameter group.
      *
      * @param name the parameter group name
+     * @param restServerParameters the parameters for instantiating API rest server
+     * @param databaseProviderParameters the parameters for instantiating database provider
+     * @param preloadPolicyTypes the list of preloaded policy types
      */
-    public ApiParameterGroup(final String name, final RestServerParameters restServerParameters) {
+    public ApiParameterGroup(final String name, final RestServerParameters restServerParameters,
+            final PolicyModelsProviderParameters databaseProviderParameters, final List<String> preloadPolicyTypes) {
         this.name = name;
         this.restServerParameters = restServerParameters;
+        this.databaseProviderParameters = databaseProviderParameters;
+        this.preloadPolicyTypes = preloadPolicyTypes;
     }
 
     /**
@@ -60,7 +73,7 @@ public class ApiParameterGroup implements ParameterGroup {
      */
     @Override
     public void setName(String name) {
-        this.name=name;
+        this.name = name;
     }
 
     /**
@@ -72,6 +85,24 @@ public class ApiParameterGroup implements ParameterGroup {
         return restServerParameters;
     }
 
+    /**
+     * Return the databaseProviderParameters of this parameter group instance.
+     *
+     * @return the databaseProviderParameters
+     */
+    public PolicyModelsProviderParameters getDatabaseProviderParameters() {
+        return databaseProviderParameters;
+    }
+
+    /**
+     * Return the preloadPolicyTypes of this parameter group instance.
+     *
+     * @return the preloadPolicyTypes
+     */
+    public List<String> getPreloadPolicyTypes() {
+        return preloadPolicyTypes;
+    }
+
     /**
      * Validate the parameter group.
      *
@@ -89,6 +120,12 @@ public class ApiParameterGroup implements ParameterGroup {
         } else {
             validationResult.setResult("restServerParameters", restServerParameters.validate());
         }
+        if (databaseProviderParameters == null) {
+            validationResult.setResult("databaseProviderParameters", ValidationStatus.INVALID,
+                    "must have databaseProviderParameters to configure api rest server");
+        } else {
+            validationResult.setResult("databaseProviderParameters", databaseProviderParameters.validate());
+        }
         return validationResult;
     }
 }