2 * Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may
5 * not use this file except in compliance with the License. You may obtain
6 * a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13 * implied. See the License for the specific language governing
14 * permissions and limitations under the License.
16 package org.akraino.validation.ui.daoimpl;
18 import java.util.List;
20 import javax.annotation.Nonnull;
22 import org.akraino.validation.ui.dao.ValidationTestResultDAO;
23 import org.akraino.validation.ui.entity.BlueprintInstance;
24 import org.akraino.validation.ui.entity.LabInfo;
25 import org.akraino.validation.ui.entity.Submission;
26 import org.akraino.validation.ui.entity.ValidationDbTestResult;
27 import org.hibernate.Criteria;
28 import org.hibernate.Session;
29 import org.hibernate.SessionFactory;
30 import org.hibernate.criterion.Restrictions;
31 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
32 import org.springframework.beans.factory.annotation.Autowired;
33 import org.springframework.stereotype.Repository;
36 public class ValidationTestResultDAOImpl implements ValidationTestResultDAO {
38 private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(ValidationTestResultDAOImpl.class);
41 private SessionFactory sessionFactory;
43 protected Session getSession() {
44 return sessionFactory.getCurrentSession();
48 public List<ValidationDbTestResult> getValidationTestResults() {
49 Criteria criteria = getSession().createCriteria(ValidationDbTestResult.class);
50 criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
51 return criteria.list();
55 public ValidationDbTestResult getValidationTestResult(@Nonnull Integer resultId) {
56 Criteria criteria = getSession().createCriteria(ValidationDbTestResult.class);
57 criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
58 criteria.add(Restrictions.eq("id", resultId));
59 return (criteria.list() == null || criteria.list().size() < 1) ? null
60 : (ValidationDbTestResult) criteria.list().get(0);
64 public List<ValidationDbTestResult> getValidationTestResults(BlueprintInstance bluInst, LabInfo labInfo,
65 Boolean allLayers, Boolean optional, Boolean outcome) {
66 Criteria criteria = getSession().createCriteria(ValidationDbTestResult.class);
67 criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
68 if (bluInst != null) {
69 criteria.add(Restrictions.eq("blueprintInstance", bluInst));
71 if (labInfo != null) {
72 criteria.add(Restrictions.eq("lab", labInfo));
74 if (allLayers != null) {
75 criteria.add(Restrictions.eq("allLayers", allLayers));
77 if (optional != null) {
78 criteria.add(Restrictions.eq("optional", optional));
80 if (outcome != null) {
81 criteria.add(Restrictions.eq("result", outcome));
83 return criteria.list() == null || criteria.list().size() == 0 ? null
84 : (List<ValidationDbTestResult>) criteria.list();
88 public ValidationDbTestResult getValidationTestResult(LabInfo labInfo, String timestamp) {
89 Criteria criteria = getSession().createCriteria(ValidationDbTestResult.class);
90 criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
91 if (labInfo != null) {
92 criteria.add(Restrictions.eq("lab", labInfo));
94 if (timestamp != null) {
95 criteria.add(Restrictions.eq("timestamp", timestamp));
97 return criteria.list() == null || criteria.list().size() == 0 ? null
98 : (ValidationDbTestResult) criteria.list().get(0);
102 public ValidationDbTestResult getValidationTestResult(@Nonnull Submission submission) {
103 Criteria criteria = getSession().createCriteria(ValidationDbTestResult.class);
104 criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
105 criteria.add(Restrictions.eq("submission", submission));
106 return criteria.list() == null || criteria.list().size() == 0 ? null
107 : (ValidationDbTestResult) criteria.list().get(0);
111 public void saveOrUpdate(@Nonnull ValidationDbTestResult vResult) {
112 getSession().saveOrUpdate(vResult);
113 getSession().flush();
117 public void merge(@Nonnull ValidationDbTestResult vResult) {
118 getSession().merge(vResult);
119 getSession().flush();
123 public void deleteValidationTestResult(@Nonnull ValidationDbTestResult vResult) {
124 getSession().delete(vResult);
125 getSession().flush();
129 public void deleteValidationTestResult(@Nonnull LabInfo labInfo, @Nonnull String timestamp) {
130 Criteria criteria = getSession().createCriteria(ValidationDbTestResult.class);
131 criteria.add(Restrictions.eq("lab", labInfo));
132 criteria.add(Restrictions.eq("timestamp", timestamp));
133 if (criteria.list() == null || criteria.list().size() == 0) {
136 getSession().delete(criteria.list().get(0));
137 getSession().flush();
141 public void deleteAll() {
142 if (getSession().createQuery("delete from ValidationTestResult").executeUpdate() > 0) {
143 LOGGER.info(EELFLoggerDelegate.applicationLogger, "All validation test results are cleaned up");
144 getSession().flush();