Changes for Checkstyle 8.32
[policy/models.git] / models-dao / src / main / java / org / onap / policy / models / dao / PfDaoFactory.java
index 3b7e31e..177a7f3 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +21,8 @@
 
 package org.onap.policy.models.dao;
 
+import java.lang.reflect.InvocationTargetException;
+import javax.ws.rs.core.Response;
 import org.onap.policy.common.utils.validation.Assertions;
 import org.onap.policy.models.base.PfModelException;
 import org.slf4j.Logger;
@@ -28,6 +31,8 @@ import org.slf4j.LoggerFactory;
 /**
  * This factory class returns a Policy Framework DAO for the configured persistence mechanism. The
  * factory uses the plugin class specified in {@link DaoParameters} to instantiate a DAO instance.
+ *
+ * @author Liam Fallon (liam.fallon@est.tech)
  */
 public class PfDaoFactory {
     // Get a reference to the logger
@@ -47,12 +52,13 @@ public class PfDaoFactory {
         // Get the class for the DAO using reflection
         Object pfDaoObject = null;
         try {
-            pfDaoObject = Class.forName(daoParameters.getPluginClass()).newInstance();
-        } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
+            pfDaoObject = Class.forName(daoParameters.getPluginClass()).getDeclaredConstructor().newInstance();
+        } catch (InstantiationException | IllegalAccessException | ClassNotFoundException | IllegalArgumentException
+                        | InvocationTargetException | NoSuchMethodException | SecurityException e) {
             String errorMessage =
                     "Policy Framework DAO class not found for DAO plugin \"" + daoParameters.getPluginClass() + "\"";
-            LOGGER.error(errorMessage, e);
-            throw new PfModelException(errorMessage, e);
+            LOGGER.error(errorMessage);
+            throw new PfModelException(Response.Status.INTERNAL_SERVER_ERROR, errorMessage, e);
         }
 
         // Check the class is a Policy Framework DAO
@@ -60,7 +66,7 @@ public class PfDaoFactory {
             String errorMessage = "Specified DAO plugin class \"" + daoParameters.getPluginClass()
                     + "\" does not implement the PfDao interface";
             LOGGER.error(errorMessage);
-            throw new PfModelException(errorMessage);
+            throw new PfModelException(Response.Status.INTERNAL_SERVER_ERROR, errorMessage);
         }
 
         return (PfDao) pfDaoObject;