[UI] Common class for results
[validation.git] / ui / src / main / java / org / akraino / validation / ui / daoimpl / BlueprintInstanceDAOImpl.java
index 4bacb14..c2cb924 100644 (file)
@@ -1,40 +1,39 @@
 /*
  * Copyright (c) 2019 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.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License. You may obtain
+ * a copy of the License at
  *
- *        http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * permissions and limitations under the License.
  */
 package org.akraino.validation.ui.daoimpl;
 
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Root;
+import javax.annotation.Nonnull;
 
 import org.akraino.validation.ui.dao.BlueprintInstanceDAO;
+import org.akraino.validation.ui.entity.Blueprint;
 import org.akraino.validation.ui.entity.BlueprintInstance;
-import org.apache.log4j.Logger;
+import org.hibernate.Criteria;
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
-import org.hibernate.query.Query;
+import org.hibernate.criterion.Restrictions;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
 @Repository
 public class BlueprintInstanceDAOImpl implements BlueprintInstanceDAO {
 
-    private static final Logger LOGGER = Logger.getLogger(BlueprintInstanceDAOImpl.class);
+    private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(BlueprintInstanceDAOImpl.class);
 
     @Autowired
     private SessionFactory sessionFactory;
@@ -45,54 +44,57 @@ public class BlueprintInstanceDAOImpl implements BlueprintInstanceDAO {
 
     @Override
     public List<BlueprintInstance> getBlueprintInstances() {
-
-        CriteriaBuilder builder = getSession().getCriteriaBuilder();
-        CriteriaQuery<BlueprintInstance> criteria = builder.createQuery(BlueprintInstance.class);
-
-        Root<BlueprintInstance> root = criteria.from(BlueprintInstance.class);
-        criteria.select(root);
-
-        Query<BlueprintInstance> query = getSession().createQuery(criteria);
-
-        return query.getResultList();
-
+        Criteria criteria = getSession().createCriteria(BlueprintInstance.class);
+        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
+        return criteria.list();
     }
 
     @Override
-    public BlueprintInstance getBlueprintInstance(Integer instId) {
-
-        EntityManager entityManager = getSession().getEntityManagerFactory().createEntityManager();
-
-        return entityManager.find(BlueprintInstance.class, instId);
+    public BlueprintInstance getBlueprintInstance(@Nonnull Integer instId) {
+        Criteria criteria = getSession().createCriteria(BlueprintInstance.class);
+        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
+        criteria.add(Restrictions.eq("id", instId));
+        return criteria.list() == null || criteria.list().size() < 1 ? null
+                : (BlueprintInstance) criteria.list().get(0);
     }
 
     @Override
-    public void saveOrUpdate(BlueprintInstance blueprintInstance) {
-        getSession().saveOrUpdate(blueprintInstance);
-
+    public BlueprintInstance getBlueprintInstance(Blueprint blueprint, String version) {
+        Criteria criteria = getSession().createCriteria(BlueprintInstance.class);
+        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
+        if (blueprint != null) {
+            criteria.add(Restrictions.eq("blueprint", blueprint));
+        }
+        if (version != null) {
+            criteria.add(Restrictions.eq("version", version));
+        }
+        return criteria.list() == null || criteria.list().size() < 1 ? null
+                : (BlueprintInstance) criteria.list().get(0);
     }
 
     @Override
-    public void merge(BlueprintInstance blueprintInstance) {
-        getSession().merge(blueprintInstance);
-
+    public void saveOrUpdate(@Nonnull BlueprintInstance blueprintInst) {
+        getSession().saveOrUpdate(blueprintInst);
+        getSession().flush();
     }
 
     @Override
-    public void deleteBlueprintInstance(BlueprintInstance blueprintInstance) {
-        getSession().delete(blueprintInstance);
+    public void merge(@Nonnull BlueprintInstance blueprintInst) {
+        getSession().merge(blueprintInst);
+        getSession().flush();
+    }
 
+    @Override
+    public void deleteBlueprintInstance(@Nonnull BlueprintInstance blueprintInst) {
+        getSession().delete(blueprintInst);
+        getSession().flush();
     }
 
     @Override
     public void deleteAll() {
-
-        Query<?> query = getSession().createQuery("delete from BlueprintInstance");
-
-        int result = query.executeUpdate();
-
-        if (result > 0) {
-            LOGGER.info("All blueprint instance entries are cleaned up");
+        if (getSession().createQuery("delete from BlueprintInstance").executeUpdate() > 0) {
+            LOGGER.info(EELFLoggerDelegate.applicationLogger, "All blueprint instances entries are cleaned up");
+            getSession().flush();
         }
     }