import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import javax.sql.DataSource;
import org.onap.clamp.clds.model.CldsServiceData;
import org.onap.clamp.clds.model.CldsTemplate;
import org.onap.clamp.clds.model.CldsToscaModel;
+import org.onap.clamp.clds.model.CldsToscaModelDetails;
+import org.onap.clamp.clds.model.CldsToscaModelRevision;
import org.onap.clamp.clds.model.ValueItem;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
return cldsToscaModels;
}
+ // Retrieve Tosca Models & its revisions by policy Type.
+ private List<CldsToscaModelDetails> getAllToscaModelVersion(String toscaModelName, String policyType,
+ String version) {
+ SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss");
+ List<CldsToscaModelDetails> cldsToscaModelDetailsList = new ArrayList<>();
+ String toscaModelSql = "SELECT tm.tosca_model_name, tm.tosca_model_id, tm.policy_type, tmr.tosca_model_revision_id, tmr.version, tmr.user_id, tmr.createdTimestamp, tmr.lastUpdatedTimestamp "
+ + "FROM tosca_model tm, tosca_model_revision tmr " + "WHERE tmr.tosca_model_id = tm.tosca_model_id "
+ + ((policyType != null) ? (" AND tm.policy_type = '" + policyType + "'") : " ")
+ + ((toscaModelName != null) ? (" AND tm.tosca_model_name = '" + toscaModelName + "'") : " ")
+ + ((version != null) ? (" AND tmr.version = '" + version + "'") : "");
+
+ List<Map<String, Object>> rows = jdbcTemplateObject.queryForList(toscaModelSql);
+
+ if (rows != null && !rows.isEmpty()) {
+ // Get list of all available modelIds
+ List<String> listofModelIds = new ArrayList<>();
+ for (Map<String, Object> r : rows) {
+ if (r != null) {
+ listofModelIds.add((String) r.get("tosca_model_id"));
+ }
+ }
+ // Filter Distinct elements using streams
+ listofModelIds = listofModelIds.stream().distinct().collect(Collectors.toList());
+
+ // TODO change logic using java8
+ for (String modelId : listofModelIds) {
+ CldsToscaModelDetails cldsToscaModelDetails = new CldsToscaModelDetails();
+ List<CldsToscaModelRevision> revisions = new ArrayList<>();
+ for (Map<String, Object> row : rows) {
+ String id = (String) row.get("tosca_model_id");
+ if (modelId.equalsIgnoreCase(id)) {
+ cldsToscaModelDetails.setId(id);
+ cldsToscaModelDetails.setPolicyType((String) row.get("policy_type"));
+ cldsToscaModelDetails.setToscaModelName((String) row.get("tosca_model_name"));
+ cldsToscaModelDetails.setUserId((String) row.get("user_id"));
+
+ CldsToscaModelRevision modelRevision = new CldsToscaModelRevision();
+ modelRevision.setRevisionId((String) row.get("tosca_model_revision_id"));
+ modelRevision.setVersion(((Double) row.get("version")));
+ modelRevision.setUserId((String) row.get("user_id"));
+ modelRevision.setCreatedDate(sdf.format(row.get("createdTimestamp")));
+ modelRevision.setLastUpdatedDate(sdf.format(row.get("lastUpdatedTimestamp")));
+ revisions.add(modelRevision);
+ }
+ }
+ cldsToscaModelDetails.setToscaModelRevisions(revisions);
+ cldsToscaModelDetailsList.add(cldsToscaModelDetails);
+ }
+ }
+ return cldsToscaModelDetailsList;
+ }
+
/**
* Method to upload a new version of Tosca Model Yaml in Database
*