From 9eac9e34f754498a3a49260827e8f6ba0a1e2bd1 Mon Sep 17 00:00:00 2001
From: Falucho <german.faller@pcunix71.fing.edu.uy>
Date: Tue, 25 Jun 2019 14:46:05 -0300
Subject: [PATCH] Mas Base de Datos

---
 .../check/checker/CheckCheckerDAOBean.java    | 53 +++++++++++++++++++
 .../check/checker/CheckCheckerDaoLocal.java   | 11 ++++
 .../mechanism/CheckMechanismDAOBean.java      | 53 +++++++++++++++++++
 .../mechanism/CheckMechanismDaoLocal.java     | 11 ++++
 .../db/entity/VerificacionChecker.java        |  5 +-
 .../db/entity/VerificacionMecanismo.java      |  4 ++
 .../fing/tse/central/db/mapper/MyMapper.java  |  9 +++-
 .../tse/central/business/BusinessBean.java    | 11 ++--
 8 files changed, 151 insertions(+), 6 deletions(-)
 create mode 100644 central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/checker/CheckCheckerDAOBean.java
 create mode 100644 central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/checker/CheckCheckerDaoLocal.java
 create mode 100644 central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/mechanism/CheckMechanismDAOBean.java
 create mode 100644 central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/mechanism/CheckMechanismDaoLocal.java

diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/checker/CheckCheckerDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/checker/CheckCheckerDAOBean.java
new file mode 100644
index 0000000..4d5fae0
--- /dev/null
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/checker/CheckCheckerDAOBean.java
@@ -0,0 +1,53 @@
+package uy.edu.fing.tse.central.db.dao.check.checker;
+
+import uy.edu.fing.tse.central.db.entity.VerificacionChecker;
+import uy.edu.fing.tse.central.db.mapper.MyMapper;
+import uy.edu.fing.tse.dto.CheckChecker;
+
+import javax.annotation.PostConstruct;
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Stateless
+public class CheckCheckerDAOBean implements CheckCheckerDaoLocal {
+
+    @PersistenceContext(unitName = "central")
+    private EntityManager em;
+
+    @PostConstruct
+    void init() {
+        //Despues del constructor hace esto
+    }
+
+    @Override
+    public CheckChecker create(CheckChecker elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        em.persist(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(r);
+    }
+
+    @Override
+    public CheckChecker find(String key) {
+        final var query = em.createNamedQuery("VerificacionChecker.findByFact", VerificacionChecker.class);
+        query.setParameter("idFact", Long.parseLong(key));
+        final var r = query.getSingleResult();
+        return MyMapper.INSTANCE.convert(r);
+    }
+
+    @Override
+    public CheckChecker find(Long id) {
+        final var r = em.find(VerificacionChecker.class, id);
+        return MyMapper.INSTANCE.convert(r);
+    }
+
+    @Override
+    public List<CheckChecker> findAll() {
+        final var query = em.createNamedQuery("VerificacionChecker.findAll", VerificacionChecker.class);
+        final List<VerificacionChecker> r = query.getResultList();
+        return r.stream().map(MyMapper.INSTANCE::convert).collect(Collectors.toList());
+    }
+}
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/checker/CheckCheckerDaoLocal.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/checker/CheckCheckerDaoLocal.java
new file mode 100644
index 0000000..223fe75
--- /dev/null
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/checker/CheckCheckerDaoLocal.java
@@ -0,0 +1,11 @@
+package uy.edu.fing.tse.central.db.dao.check.checker;
+
+import uy.edu.fing.tse.central.db.dao.GenericDao;
+import uy.edu.fing.tse.dto.CheckChecker;
+
+import javax.ejb.Local;
+
+@Local
+public interface CheckCheckerDaoLocal extends GenericDao<CheckChecker> {
+
+}
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/mechanism/CheckMechanismDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/mechanism/CheckMechanismDAOBean.java
new file mode 100644
index 0000000..00110bf
--- /dev/null
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/mechanism/CheckMechanismDAOBean.java
@@ -0,0 +1,53 @@
+package uy.edu.fing.tse.central.db.dao.check.mechanism;
+
+import uy.edu.fing.tse.central.db.entity.VerificacionMecanismo;
+import uy.edu.fing.tse.central.db.mapper.MyMapper;
+import uy.edu.fing.tse.dto.CheckMechanism;
+
+import javax.annotation.PostConstruct;
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Stateless
+public class CheckMechanismDAOBean implements CheckMechanismDaoLocal {
+
+    @PersistenceContext(unitName = "central")
+    private EntityManager em;
+
+    @PostConstruct
+    void init() {
+        //Despues del constructor hace esto
+    }
+
+    @Override
+    public CheckMechanism create(CheckMechanism elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        em.persist(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(r);
+    }
+
+    @Override
+    public CheckMechanism find(String key) {
+        final var query = em.createNamedQuery("VerificacionMecanismo.findByFact", VerificacionMecanismo.class);
+        query.setParameter("idFact", Long.parseLong(key));
+        final var r = query.getSingleResult();
+        return MyMapper.INSTANCE.convert(r);
+    }
+
+    @Override
+    public CheckMechanism find(Long id) {
+        final var r = em.find(VerificacionMecanismo.class, id);
+        return MyMapper.INSTANCE.convert(r);
+    }
+
+    @Override
+    public List<CheckMechanism> findAll() {
+        final var query = em.createNamedQuery("VerificacionMecanismo.findAll", VerificacionMecanismo.class);
+        final List<VerificacionMecanismo> r = query.getResultList();
+        return r.stream().map(MyMapper.INSTANCE::convert).collect(Collectors.toList());
+    }
+}
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/mechanism/CheckMechanismDaoLocal.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/mechanism/CheckMechanismDaoLocal.java
new file mode 100644
index 0000000..18aebf2
--- /dev/null
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/mechanism/CheckMechanismDaoLocal.java
@@ -0,0 +1,11 @@
+package uy.edu.fing.tse.central.db.dao.check.mechanism;
+
+import uy.edu.fing.tse.central.db.dao.GenericDao;
+import uy.edu.fing.tse.dto.CheckMechanism;
+
+import javax.ejb.Local;
+
+@Local
+public interface CheckMechanismDaoLocal extends GenericDao<CheckMechanism> {
+
+}
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/VerificacionChecker.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/VerificacionChecker.java
index 17d9825..491e74d 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/VerificacionChecker.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/VerificacionChecker.java
@@ -3,6 +3,10 @@ package uy.edu.fing.tse.central.db.entity;
 import javax.persistence.*;
 
 @Entity
+@NamedQueries({
+        @NamedQuery(name = "VerificacionChecker.findAll", query = "select r from VerificacionChecker r"),
+        @NamedQuery(name = "VerificacionChecker.findByFact", query = "select r from VerificacionChecker r inner join r.fact as f where f.id = :idFact")
+})
 public class VerificacionChecker {
 
     @Id
@@ -15,7 +19,6 @@ public class VerificacionChecker {
     @ManyToOne(optional = false)
     private Hecho fact;
 
-
     @ManyToOne(optional = false)
     private Calificacion score;
 
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/VerificacionMecanismo.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/VerificacionMecanismo.java
index 0ac4dfa..7b87239 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/VerificacionMecanismo.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/VerificacionMecanismo.java
@@ -4,6 +4,10 @@ import javax.persistence.*;
 import java.util.Date;
 
 @Entity
+@NamedQueries({
+        @NamedQuery(name = "VerificacionMecanismo.findAll", query = "select r from VerificacionMecanismo r"),
+        @NamedQuery(name = "VerificacionMecanismo.findByFact", query = "select r from VerificacionMecanismo r inner join r.fact as f where f.id = :idFact")
+})
 public class VerificacionMecanismo {
 
     @Id
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/mapper/MyMapper.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/mapper/MyMapper.java
index 4a0ac9b..0bd7b57 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/mapper/MyMapper.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/mapper/MyMapper.java
@@ -52,6 +52,14 @@ public interface MyMapper {
         }
     }
 
+    VerificacionMecanismo convert(CheckMechanism f);
+
+    CheckMechanism convert(VerificacionMecanismo f);
+
+    VerificacionChecker convert(CheckChecker f);
+
+    CheckChecker convert(VerificacionChecker f);
+
     Peripherical convert(Periferico f);
 
     Periferico convert(Peripherical f);
@@ -95,5 +103,4 @@ public interface MyMapper {
     Rol convert(Role role);
 
     Role convert(Rol rol);
-
 }
diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java
index 0213171..460fe9e 100644
--- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java
+++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java
@@ -5,6 +5,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import uy.edu.fing.tse.central.db.dao.category.CategoryDaoLocal;
 import uy.edu.fing.tse.central.db.dao.fact.FactDaoLocal;
+import uy.edu.fing.tse.central.db.dao.mechanism.MechanismDaoLocal;
 import uy.edu.fing.tse.central.db.dao.role.RoleDaoLocal;
 import uy.edu.fing.tse.central.db.dao.score.ScoreDaoLocal;
 import uy.edu.fing.tse.central.db.dao.state.StateDaoLocal;
@@ -23,19 +24,21 @@ public class BusinessBean implements BusinessLocal, BusinessRemote {
     private static final Logger LOG = LoggerFactory.getLogger(Business.class);
 
     @EJB
-    private FactDaoLocal hechos;
+    private CategoryDaoLocal categorias;
     @EJB
-    private UserDaoLocal usuarios;
+    private FactDaoLocal hechos;
     @EJB
-    private StateDaoLocal estados;
+    private MechanismDaoLocal mecanismos;
     @EJB
     private RoleDaoLocal roles;
     @EJB
     private ScoreDaoLocal calificaciones;
     @EJB
-    private CategoryDaoLocal categorias;
+    private StateDaoLocal estados;
     @EJB
     private StateHistoryDaoLocal transiciones;
+    @EJB
+    private UserDaoLocal usuarios;
 
 
     @Override
-- 
GitLab