Add new class for DAO
[clamp.git] / src / main / java / org / onap / clamp / clds / dao / CldsDao.java
index d54976b..c5332a6 100644 (file)
@@ -23,6 +23,9 @@
 
 package org.onap.clamp.clds.dao;
 
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.ObjectInputStream;
@@ -40,6 +43,7 @@ import org.onap.clamp.clds.model.CldsDBServiceCache;
 import org.onap.clamp.clds.model.CldsEvent;
 import org.onap.clamp.clds.model.CldsModel;
 import org.onap.clamp.clds.model.CldsModelInstance;
+import org.onap.clamp.clds.model.CldsModelProp;
 import org.onap.clamp.clds.model.CldsServiceData;
 import org.onap.clamp.clds.model.CldsTemplate;
 import org.onap.clamp.clds.model.ValueItem;
@@ -51,9 +55,6 @@ import org.springframework.jdbc.core.namedparam.SqlParameterSource;
 import org.springframework.jdbc.core.simple.SimpleJdbcCall;
 import org.springframework.stereotype.Repository;
 
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
 /**
  * Data Access for CLDS Model tables.
  */
@@ -63,19 +64,19 @@ public class CldsDao {
     protected static final EELFLogger logger        = EELFManager.getInstance().getLogger(CldsDao.class);
     protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
 
-    private JdbcTemplate            jdbcTemplateObject;
-    private SimpleJdbcCall          procGetModel;
-    private SimpleJdbcCall          procGetModelTemplate;
-    private SimpleJdbcCall          procSetModel;
-    private SimpleJdbcCall          procInsEvent;
-    private SimpleJdbcCall          procUpdEvent;
-    private SimpleJdbcCall          procSetTemplate;
-    private SimpleJdbcCall          procGetTemplate;
-    private SimpleJdbcCall          procDelAllModelInstances;
-    private SimpleJdbcCall          procInsModelInstance;
-    private SimpleJdbcCall          procDelModelInstance;
+    private JdbcTemplate              jdbcTemplateObject;
+    private SimpleJdbcCall            procGetModel;
+    private SimpleJdbcCall            procGetModelTemplate;
+    private SimpleJdbcCall            procSetModel;
+    private SimpleJdbcCall            procInsEvent;
+    private SimpleJdbcCall            procUpdEvent;
+    private SimpleJdbcCall            procSetTemplate;
+    private SimpleJdbcCall            procGetTemplate;
+    private SimpleJdbcCall            procDelAllModelInstances;
+    private SimpleJdbcCall            procInsModelInstance;
+    private SimpleJdbcCall            procDelModelInstance;
 
-    private static final String     healthcheck   = "Select 1";
+    private static final String       HEALTHCHECK   = "Select 1";
 
     /**
      * Log message when instantiating
@@ -386,7 +387,7 @@ public class CldsDao {
                 cldsServiceData = (CldsServiceData) oip.readObject();
                 cldsServiceData.setAgeOfRecord(age);
             } catch (IOException | ClassNotFoundException e) {
-                logger.error("Error caught while retrieving cldsServiceData from database");
+                logger.error("Error caught while retrieving cldsServiceData from database", e);
             }
             return cldsServiceData;
         }
@@ -398,8 +399,8 @@ public class CldsDao {
      * @return model names
      */
     public List<ValueItem> getBpmnNames() {
-        String SQL = "SELECT model_name FROM model ORDER BY 1;";
-        return jdbcTemplateObject.query(SQL, new ValueItemMapper());
+        String sql = "SELECT model_name FROM model ORDER BY 1;";
+        return jdbcTemplateObject.query(sql, new ValueItemMapper());
     }
 
     /**
@@ -408,9 +409,8 @@ public class CldsDao {
      *
      * @param template
      * @param userid
-     * @return
      */
-    public CldsTemplate setTemplate(CldsTemplate template, String userid) {
+    public void setTemplate(CldsTemplate template, String userid) {
         SqlParameterSource in = new MapSqlParameterSource().addValue("v_template_name", template.getName())
                 .addValue("v_user_id", userid).addValue("v_template_bpmn_text", template.getBpmnText())
                 .addValue("v_template_image_text", template.getImageText())
@@ -426,7 +426,6 @@ public class CldsDao {
         template.setPropId((String) (out.get("v_template_doc_id")));
         template.setPropUserid((String) out.get("v_template_doc_user_id"));
         template.setPropText((String) out.get("v_template_doc_text"));
-        return template;
     }
 
     /**
@@ -435,8 +434,8 @@ public class CldsDao {
      * @return template names
      */
     public List<ValueItem> getTemplateNames() {
-        String SQL = "SELECT template_name FROM template ORDER BY 1;";
-        return jdbcTemplateObject.query(SQL, new ValueItemMapper());
+        String sql = "SELECT template_name FROM template ORDER BY 1;";
+        return jdbcTemplateObject.query(sql, new ValueItemMapper());
     }
 
     /**
@@ -463,8 +462,7 @@ public class CldsDao {
         return template;
     }
 
-    public CldsServiceData getCldsServiceCache(String invariantUUID)
-            throws SQLException, IOException, ClassNotFoundException {
+    public CldsServiceData getCldsServiceCache(String invariantUUID) {
         CldsServiceData cldsServiceData = null;
         List<CldsServiceData> cldsServiceDataList = new ArrayList<>();
         try {
@@ -478,7 +476,7 @@ public class CldsDao {
         return cldsServiceData;
     }
 
-    public void setCldsServiceCache(CldsDBServiceCache cldsDBServiceCache) throws SQLException, IOException {
+    public void setCldsServiceCache(CldsDBServiceCache cldsDBServiceCache) {
         if (cldsDBServiceCache != null && cldsDBServiceCache.getInvariantId() != null
                 && cldsDBServiceCache.getServiceId() != null) {
             String invariantUuid = cldsDBServiceCache.getInvariantId();
@@ -500,8 +498,30 @@ public class CldsDao {
         }
     }
 
-    public void doHealthCheck() throws SQLException, IOException {
-        jdbcTemplateObject.execute(healthcheck);
+    public void doHealthCheck() {
+        jdbcTemplateObject.execute(HEALTHCHECK);
+    }
+
+    /**
+     * Method to get all models with model properties.
+     * 
+     * @return list of CldsModelProp
+     */
+    public List<CldsModelProp> getAllModelProperties() {
+        List<CldsModelProp> cldsModelPropList = new ArrayList<CldsModelProp>();
+        String modelsSql = "select m.model_id, m.model_name, mp.model_prop_id, mp.model_prop_text FROM model m, model_properties mp"
+                + " WHERE m.model_prop_id = mp.model_prop_id";
+        List<Map<String, Object>> rows = jdbcTemplateObject.queryForList(modelsSql);
+        CldsModelProp cldsModelProp = null;
+        for (Map<String, Object> row : rows) {
+            cldsModelProp = new CldsModelProp();
+            cldsModelProp.setId((String) row.get("model_id"));
+            cldsModelProp.setName((String) row.get("model_name"));
+            cldsModelProp.setPropId((String) row.get("model_prop_id"));
+            cldsModelProp.setPropText((String) row.get("model_prop_text"));
+            cldsModelPropList.add(cldsModelProp);
+        }
+        return cldsModelPropList;
     }
 
 }