Preload default policies
[policy/api.git] / main / src / main / java / org / onap / policy / api / main / parameters / ApiParameterGroup.java
index af12f01..c063d60 100644 (file)
 
 package org.onap.policy.api.main.parameters;
 
+import java.util.List;
+import lombok.Getter;
+import lombok.Setter;
+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.
  *
  */
+@Getter
 public class ApiParameterGroup implements ParameterGroup {
+
+    @Setter
     private String name;
-    private RestServerParameters restServerParameters;
+    private final RestServerParameters restServerParameters;
+    private final PolicyModelsProviderParameters databaseProviderParameters;
+    private final List<String> preloadPolicyTypes;
+    private final List<String> preloadPolicies;
 
     /**
      * 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
+     * @param preloadPolicies the list of preloaded policies
      */
-    public ApiParameterGroup(final String name, final RestServerParameters restServerParameters) {
+    public ApiParameterGroup(final String name, final RestServerParameters restServerParameters,
+            final PolicyModelsProviderParameters databaseProviderParameters, final List<String> preloadPolicyTypes,
+            final List<String> preloadPolicies) {
         this.name = name;
         this.restServerParameters = restServerParameters;
-    }
-
-    /**
-     * Return the name of this parameter group instance.
-     *
-     * @return name the parameter group name
-     */
-    @Override
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Set the name of this parameter group instance.
-     *
-     * @param name the parameter group name
-     */
-    @Override
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    /**
-     * Return the restServerParameters of this parameter group instance.
-     *
-     * @return the restServerParameters
-     */
-    public RestServerParameters getRestServerParameters() {
-        return restServerParameters;
+        this.databaseProviderParameters = databaseProviderParameters;
+        this.preloadPolicyTypes = preloadPolicyTypes;
+        this.preloadPolicies = preloadPolicies;
     }
 
     /**
@@ -89,6 +80,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;
     }
 }