[UI] Common class for results
[validation.git] / ui / src / main / java / org / akraino / validation / ui / daoimpl / BlueprintInstanceDAOImpl.java
@@ -19,8 +19,9 @@ import java.util.List;
 
 import javax.annotation.Nonnull;
 
-import org.akraino.validation.ui.dao.BlueprintInstanceForValidationDAO;
-import org.akraino.validation.ui.entity.BlueprintInstanceForValidation;
+import org.akraino.validation.ui.dao.BlueprintInstanceDAO;
+import org.akraino.validation.ui.entity.Blueprint;
+import org.akraino.validation.ui.entity.BlueprintInstance;
 import org.hibernate.Criteria;
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
@@ -30,10 +31,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
 @Repository
-public class BlueprintInstanceForValidationDAOImpl implements BlueprintInstanceForValidationDAO {
+public class BlueprintInstanceDAOImpl implements BlueprintInstanceDAO {
 
-    private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate
-            .getLogger(BlueprintInstanceForValidationDAOImpl.class);
+    private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(BlueprintInstanceDAOImpl.class);
 
     @Autowired
     private SessionFactory sessionFactory;
@@ -43,41 +43,57 @@ public class BlueprintInstanceForValidationDAOImpl implements BlueprintInstanceF
     }
 
     @Override
-    public List<BlueprintInstanceForValidation> getBlueprintInstancesForValidation() {
-        Criteria criteria = getSession().createCriteria(BlueprintInstanceForValidation.class);
+    public List<BlueprintInstance> getBlueprintInstances() {
+        Criteria criteria = getSession().createCriteria(BlueprintInstance.class);
+        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
         return criteria.list();
     }
 
     @Override
-    public BlueprintInstanceForValidation getBlueprintInstanceForValidation(@Nonnull Integer instId) {
-        Criteria criteria = getSession().createCriteria(BlueprintInstanceForValidation.class);
-        criteria.add(Restrictions.eq("id", String.valueOf(instId)));
-        return criteria.list() == null ? null : (BlueprintInstanceForValidation) criteria.list().get(0);
+    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(@Nonnull BlueprintInstanceForValidation blueprintInst) {
+    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 saveOrUpdate(@Nonnull BlueprintInstance blueprintInst) {
         getSession().saveOrUpdate(blueprintInst);
         getSession().flush();
     }
 
     @Override
-    public void merge(@Nonnull BlueprintInstanceForValidation blueprintInst) {
+    public void merge(@Nonnull BlueprintInstance blueprintInst) {
         getSession().merge(blueprintInst);
         getSession().flush();
     }
 
     @Override
-    public void deleteBlueprintInstanceForValidation(@Nonnull BlueprintInstanceForValidation blueprintInst) {
+    public void deleteBlueprintInstance(@Nonnull BlueprintInstance blueprintInst) {
         getSession().delete(blueprintInst);
         getSession().flush();
     }
 
     @Override
     public void deleteAll() {
-        if (getSession().createQuery("delete from BlueprintInstanceForValidation").executeUpdate() > 0) {
-            LOGGER.info(EELFLoggerDelegate.applicationLogger,
-                    "All blueprint instances for validation 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();
         }
     }