From 113ee5b45ee5959a86a65469c615f34836c13ad0 Mon Sep 17 00:00:00 2001 From: AugustoSavi Date: Tue, 23 Nov 2021 00:35:13 -0300 Subject: [PATCH 01/10] convertendo para jsp --- docker-compose.yml | 22 ++++ pom.xml | 23 ++++ .../Controller/CandidatoEditServlet.java | 29 +++++ .../Controller}/CandidatoRemoveServlet.java | 18 +-- .../Controller}/CandidatosServlet.java | 49 ++++----- .../core/Canditatos/Model/Candidato.java | 25 +++++ .../Repository/CandidatoRepository.java | 65 +++++++++++ .../com/example/core/Model/Candidato.java | 40 ------- .../java/com/example/core/Model/Voto.java | 30 ----- .../Controller/relatorioServlet.java | 38 +++++++ .../CandidatoEditServlet.java | 38 ------- .../relatoriosServlet/relatorioServlet.java | 42 ------- .../Servlet/votosServlet/VotoEditServlet.java | 40 ------- .../CandidatosViews/CandidatoHTMLCreator.java | 78 ------------- .../CandidatosHTMLCreator.java | 59 ---------- .../View/Relatorios/RelatorioViewCreator.java | 103 ------------------ .../core/View/VotosViews/VotoHTMLCreator.java | 79 -------------- .../View/VotosViews/VotosHTMLCreator.java | 58 ---------- .../Votos/Controller/VotoEditServlet.java | 35 ++++++ .../Controller}/VotoRemoveServlet.java | 23 +--- .../Controller}/VotoServlet.java | 59 ++++------ .../Controller}/VotosServlet.java | 22 ++-- .../com/example/core/Votos/Model/Voto.java | 27 +++++ .../core/Votos/Repository/VotoRepository.java | 64 +++++++++++ src/main/resources/META-INF/persistence.xml | 22 ++++ src/main/webapp/candidato.jsp | 49 +++++++++ src/main/webapp/candidatos.jsp | 54 +++++++++ src/main/webapp/relatorio.jsp | 85 +++++++++++++++ src/main/webapp/voto.jsp | 65 +++++++++++ src/main/webapp/votos.jsp | 55 ++++++++++ 30 files changed, 718 insertions(+), 678 deletions(-) create mode 100644 docker-compose.yml create mode 100644 src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java rename src/main/java/com/example/core/{Servlet/candidatosServlet => Canditatos/Controller}/CandidatoRemoveServlet.java (56%) rename src/main/java/com/example/core/{Servlet/candidatosServlet => Canditatos/Controller}/CandidatosServlet.java (51%) create mode 100644 src/main/java/com/example/core/Canditatos/Model/Candidato.java create mode 100644 src/main/java/com/example/core/Canditatos/Repository/CandidatoRepository.java delete mode 100644 src/main/java/com/example/core/Model/Candidato.java delete mode 100644 src/main/java/com/example/core/Model/Voto.java create mode 100644 src/main/java/com/example/core/Relatorios/Controller/relatorioServlet.java delete mode 100644 src/main/java/com/example/core/Servlet/candidatosServlet/CandidatoEditServlet.java delete mode 100644 src/main/java/com/example/core/Servlet/relatoriosServlet/relatorioServlet.java delete mode 100644 src/main/java/com/example/core/Servlet/votosServlet/VotoEditServlet.java delete mode 100644 src/main/java/com/example/core/View/CandidatosViews/CandidatoHTMLCreator.java delete mode 100644 src/main/java/com/example/core/View/CandidatosViews/CandidatosHTMLCreator.java delete mode 100644 src/main/java/com/example/core/View/Relatorios/RelatorioViewCreator.java delete mode 100644 src/main/java/com/example/core/View/VotosViews/VotoHTMLCreator.java delete mode 100644 src/main/java/com/example/core/View/VotosViews/VotosHTMLCreator.java create mode 100644 src/main/java/com/example/core/Votos/Controller/VotoEditServlet.java rename src/main/java/com/example/core/{Servlet/votosServlet => Votos/Controller}/VotoRemoveServlet.java (56%) rename src/main/java/com/example/core/{Servlet/votosServlet => Votos/Controller}/VotoServlet.java (50%) rename src/main/java/com/example/core/{Servlet/votosServlet => Votos/Controller}/VotosServlet.java (50%) create mode 100644 src/main/java/com/example/core/Votos/Model/Voto.java create mode 100644 src/main/java/com/example/core/Votos/Repository/VotoRepository.java create mode 100644 src/main/resources/META-INF/persistence.xml create mode 100644 src/main/webapp/candidato.jsp create mode 100644 src/main/webapp/candidatos.jsp create mode 100644 src/main/webapp/relatorio.jsp create mode 100644 src/main/webapp/voto.jsp create mode 100644 src/main/webapp/votos.jsp diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..86abccb --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3.3' +services: + db: + image: mysql:5.7 + restart: always + environment: + MYSQL_DATABASE: 'votacao' + # So you don't have to use root, but you can if you like + MYSQL_USER: 'user' + # You can use whatever password you like + MYSQL_PASSWORD: 'password' + # Password for root access + MYSQL_ROOT_PASSWORD: 'password' + ports: + # : < MySQL Port running inside container> + - '3306:3306' + expose: + # Opens port 3306 on the container + - '3306' + # Where our data will be persisted +# volumes: +# - my-db:/var/lib/mysql \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3ba950f..b4ba949 100644 --- a/pom.xml +++ b/pom.xml @@ -36,7 +36,30 @@ ${junit.version} test + + org.projectlombok + lombok + 1.18.22 + provided + + + + org.hibernate + hibernate-core + 5.4.12.Final + + + org.hibernate + hibernate-entitymanager + 5.4.12.Final + + + + mysql + mysql-connector-java + 8.0.19 + diff --git a/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java b/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java new file mode 100644 index 0000000..93e6cf1 --- /dev/null +++ b/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java @@ -0,0 +1,29 @@ +package com.example.core.Canditatos.Controller; + +import com.example.core.Canditatos.Model.Candidato; +import com.example.core.Canditatos.Repository.CandidatoRepository; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet( value = "/candidato-edit") +public class CandidatoEditServlet extends HttpServlet { + + private CandidatoRepository candidatoRepository = new CandidatoRepository(); + + // EDIT CANDIDATO + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String id = String.valueOf(request.getParameter("id")); + + Candidato candidato = candidatoRepository.findOne(id).orElse(new Candidato()); + + request.setAttribute("candidato", candidato); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("candidato.jsp"); + requestDispatcher.forward(request,response); + } +} diff --git a/src/main/java/com/example/core/Servlet/candidatosServlet/CandidatoRemoveServlet.java b/src/main/java/com/example/core/Canditatos/Controller/CandidatoRemoveServlet.java similarity index 56% rename from src/main/java/com/example/core/Servlet/candidatosServlet/CandidatoRemoveServlet.java rename to src/main/java/com/example/core/Canditatos/Controller/CandidatoRemoveServlet.java index fe0fe66..5275226 100644 --- a/src/main/java/com/example/core/Servlet/candidatosServlet/CandidatoRemoveServlet.java +++ b/src/main/java/com/example/core/Canditatos/Controller/CandidatoRemoveServlet.java @@ -1,39 +1,29 @@ -package com.example.core.Servlet.candidatosServlet; - -import com.example.core.Model.Candidato; +package com.example.core.Canditatos.Controller; +import com.example.core.Canditatos.Repository.CandidatoRepository; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import java.io.IOException; import java.util.*; -import java.util.stream.Collectors; @WebServlet( value = "/candidato-remove") public class CandidatoRemoveServlet extends HttpServlet { - private List candidatos = new ArrayList<>(); + CandidatoRepository candidatoRepository = new CandidatoRepository(); // DELETE CANDIDATO @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id = String.valueOf(request.getParameter("id")); - HttpSession session=request.getSession(); - - if (Objects.nonNull(session.getAttribute("candidatos"))){ - candidatos = (List)session.getAttribute("candidatos"); - } - System.out.println("Delete: "+ id); if (Objects.isNull(id)) response.sendRedirect("/candidatos"); - candidatos = candidatos.stream().filter(candidato -> !candidato.getId().equals(id)).collect(Collectors.toList()); + candidatoRepository.remove(id); - session.setAttribute("candidatos",candidatos); response.sendRedirect(request.getContextPath() + "/candidatos"); } } diff --git a/src/main/java/com/example/core/Servlet/candidatosServlet/CandidatosServlet.java b/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java similarity index 51% rename from src/main/java/com/example/core/Servlet/candidatosServlet/CandidatosServlet.java rename to src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java index 7bdf7bf..5029543 100644 --- a/src/main/java/com/example/core/Servlet/candidatosServlet/CandidatosServlet.java +++ b/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java @@ -1,16 +1,14 @@ -package com.example.core.Servlet.candidatosServlet; - -import com.example.core.Model.Candidato; -import com.example.core.View.CandidatosViews.CandidatosHTMLCreator; +package com.example.core.Canditatos.Controller; +import com.example.core.Canditatos.Model.Candidato; +import com.example.core.Canditatos.Repository.CandidatoRepository; +import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import java.io.IOException; -import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -19,56 +17,47 @@ @WebServlet(value = "/candidatos") public class CandidatosServlet extends HttpServlet { - private CandidatosHTMLCreator candidatosHTMLCreator = new CandidatosHTMLCreator(); private List candidatos = new ArrayList<>(); + private CandidatoRepository candidatoRepository = new CandidatoRepository(); + // LISTAGEM CANDIDATOS @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - HttpSession session = request.getSession(); - PrintWriter out = response.getWriter(); + this.candidatos = candidatoRepository.findAll(); - if (session.isNew()) { - out.println(candidatosHTMLCreator.getTableHtml(candidatos)); - } - else { - List candidatosSession = (List) session.getAttribute("candidatos"); - this.candidatos = Objects.isNull(candidatosSession) ? this.candidatos : candidatosSession; - out.println(candidatosHTMLCreator.getTableHtml(this.candidatos)); - } + request.setAttribute("candidatos", this.candidatos); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("candidatos.jsp"); + requestDispatcher.forward(request,response); } // SALVAR CANDIDATO @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - HttpSession session=request.getSession(); String id = request.getParameter("id"); String nome = request.getParameter("nome"); String numero = request.getParameter("numero"); - if (validaDuplicado(nome,numero, response)){ + if (validaDuplicado(nome,numero)){ response.sendRedirect("candidato-duplicado.html"); }else { if (Objects.isNull(id) || id.length() == 0) { System.out.println("doPost: new candidato"); Candidato candidato = new Candidato(UUID.randomUUID().toString(), nome, Integer.valueOf(numero)); - candidatos.add(candidato); - session.setAttribute("candidatos", candidatos); + candidatoRepository.save(candidato); } else { - System.out.println("doPost: " + id); - for (Candidato candidato : candidatos) { - if (candidato.getId().equals(id)) { - candidato.setNome(nome); - candidato.setNumeroCandidato(Integer.valueOf(numero)); - } - } + System.out.println("doPost: update: " + id); + Candidato candidato = candidatoRepository.findOne(id).orElse(new Candidato()); + candidato.setNome(nome); + candidato.setNumeroCandidato(Integer.valueOf(numero)); + candidatoRepository.save(candidato); } response.sendRedirect(request.getRequestURI()); } } - private boolean validaDuplicado(String nome, String numero, HttpServletResponse response){ - for (Candidato candidato: candidatos){ + private boolean validaDuplicado(String nome, String numero){ + for (Candidato candidato: this.candidatos){ if (candidato.getNome().equals(nome) && candidato.getNumeroCandidato().equals(Integer.valueOf(numero))){ return true; } diff --git a/src/main/java/com/example/core/Canditatos/Model/Candidato.java b/src/main/java/com/example/core/Canditatos/Model/Candidato.java new file mode 100644 index 0000000..a217656 --- /dev/null +++ b/src/main/java/com/example/core/Canditatos/Model/Candidato.java @@ -0,0 +1,25 @@ +package com.example.core.Canditatos.Model; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@Entity +public class Candidato { + + @Id + private String id; + @Column + private String nome; + @Column + private Integer numeroCandidato; +} diff --git a/src/main/java/com/example/core/Canditatos/Repository/CandidatoRepository.java b/src/main/java/com/example/core/Canditatos/Repository/CandidatoRepository.java new file mode 100644 index 0000000..b090793 --- /dev/null +++ b/src/main/java/com/example/core/Canditatos/Repository/CandidatoRepository.java @@ -0,0 +1,65 @@ +package com.example.core.Canditatos.Repository; + +import com.example.core.Canditatos.Model.Candidato; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; +import java.util.Collections; +import java.util.List; +import java.util.Optional; + +public class CandidatoRepository { + EntityManagerFactory entityManagerFactory; + EntityManager entityManager; + + public CandidatoRepository() { + entityManagerFactory = Persistence.createEntityManagerFactory("votacao-jpa"); + entityManager = entityManagerFactory.createEntityManager(); + } + + public void save(Candidato candidato) { + try { + entityManager.getTransaction().begin(); + entityManager.persist(candidato); + entityManager.getTransaction().commit(); + entityManager.getTransaction(); + }catch (Exception e){ + System.out.println(e); + } + } + + public void remove(String id) { + try { + Candidato candidato = findOne(id).orElse(null); + entityManager.getTransaction().begin(); + entityManager.remove(candidato); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + System.out.println(e); + } + } + + public Optional findOne(String id){ + Candidato candidato = new Candidato(); + try { + candidato = entityManager.find(Candidato.class, id); + }catch (Exception e){ + System.out.println(e); + } + return Optional.ofNullable(candidato); + } + + @SuppressWarnings("unchecked") + public List findAll(){ + List candidatos = Collections.emptyList(); + try { + candidatos = entityManager.createQuery("select candidato from Candidato candidato").getResultList(); + } + catch (Exception e){ + System.out.println(e); + } + return candidatos; + } +} diff --git a/src/main/java/com/example/core/Model/Candidato.java b/src/main/java/com/example/core/Model/Candidato.java deleted file mode 100644 index c232108..0000000 --- a/src/main/java/com/example/core/Model/Candidato.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.example.core.Model; - -public class Candidato { - private String id; - private String nome; - private Integer numeroCandidato; - - public Candidato(){} - - public Candidato(String id, String nome, Integer numeroCandidato) { - this.id = id; - this.nome = nome; - this.numeroCandidato = numeroCandidato; - } - - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getNome() { - return nome; - } - - public void setNome(String nome) { - this.nome = nome; - } - - public Integer getNumeroCandidato() { - return numeroCandidato; - } - - public void setNumeroCandidato(Integer numeroCandidato) { - this.numeroCandidato = numeroCandidato; - } -} diff --git a/src/main/java/com/example/core/Model/Voto.java b/src/main/java/com/example/core/Model/Voto.java deleted file mode 100644 index 839dd6e..0000000 --- a/src/main/java/com/example/core/Model/Voto.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.example.core.Model; - -public class Voto { - - private String id; - private Candidato candidato; - - public Voto(){} - - public Voto(String id, Candidato candidato) { - this.id = id; - this.candidato = candidato; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public Candidato getCandidato() { - return candidato; - } - - public void setCandidato(Candidato candidato) { - this.candidato = candidato; - } -} diff --git a/src/main/java/com/example/core/Relatorios/Controller/relatorioServlet.java b/src/main/java/com/example/core/Relatorios/Controller/relatorioServlet.java new file mode 100644 index 0000000..8323855 --- /dev/null +++ b/src/main/java/com/example/core/Relatorios/Controller/relatorioServlet.java @@ -0,0 +1,38 @@ +package com.example.core.Relatorios.Controller; + +import com.example.core.Canditatos.Model.Candidato; +import com.example.core.Votos.Model.Voto; +import com.example.core.Canditatos.Repository.CandidatoRepository; +import com.example.core.Votos.Repository.VotoRepository; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +@WebServlet( value = "/relatorios") +public class relatorioServlet extends HttpServlet { + + private List votos = new ArrayList<>(); + private List candidatos = new ArrayList<>(); + private VotoRepository votoRepository = new VotoRepository(); + private CandidatoRepository candidatoRepository = new CandidatoRepository(); + + // PAGE VOTOS + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + System.out.println("doGet: relatorios"); + + this.votos = votoRepository.findAll(); + this.candidatos = candidatoRepository.findAll(); + + request.setAttribute("candidatos", this.candidatos); + request.setAttribute("votos", this.votos); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("relatorio.jsp"); + requestDispatcher.forward(request,response); + } +} diff --git a/src/main/java/com/example/core/Servlet/candidatosServlet/CandidatoEditServlet.java b/src/main/java/com/example/core/Servlet/candidatosServlet/CandidatoEditServlet.java deleted file mode 100644 index e8912a1..0000000 --- a/src/main/java/com/example/core/Servlet/candidatosServlet/CandidatoEditServlet.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.example.core.Servlet.candidatosServlet; - -import com.example.core.Model.Candidato; -import com.example.core.View.CandidatosViews.CandidatoHTMLCreator; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.List; -import java.util.Objects; -import java.util.regex.Pattern; - -@WebServlet( value = "/candidato-edit") -public class CandidatoEditServlet extends HttpServlet { - - private CandidatoHTMLCreator candidatoHTMLCreator = new CandidatoHTMLCreator(); - private static Pattern pattern = Pattern.compile("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"); - - // EDIT CANDIDATO - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - HttpSession session = request.getSession(); - PrintWriter out = response.getWriter(); - String id = String.valueOf(request.getParameter("id")); - Candidato candidato = new Candidato(); - - List candidatos = (List)session.getAttribute("candidatos"); - if(pattern.matcher(id).matches() && Objects.nonNull(candidatos)) { - candidato = candidatos.stream().filter(cand -> cand.getId().equals(id)).findFirst().orElse(null); - } - out.println(candidatoHTMLCreator.getPageHtml(candidato)); - } -} diff --git a/src/main/java/com/example/core/Servlet/relatoriosServlet/relatorioServlet.java b/src/main/java/com/example/core/Servlet/relatoriosServlet/relatorioServlet.java deleted file mode 100644 index a4b8794..0000000 --- a/src/main/java/com/example/core/Servlet/relatoriosServlet/relatorioServlet.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.example.core.Servlet.relatoriosServlet; - -import com.example.core.Model.Candidato; -import com.example.core.Model.Voto; -import com.example.core.View.Relatorios.RelatorioViewCreator; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -@WebServlet( value = "/relatorios") -public class relatorioServlet extends HttpServlet { - - private List votos = new ArrayList<>(); - private List candidatos = new ArrayList<>(); - private RelatorioViewCreator relatorioViewCreator = new RelatorioViewCreator(); - - // PAGE VOTOS - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - System.out.println("doGet: relatorios"); - - HttpSession session = request.getSession(); - PrintWriter out = response.getWriter(); - - List votosSession = (List) session.getAttribute("votos"); - this.votos = Objects.isNull(votosSession) ? this.votos : votosSession; - - List candidatosSession = (List) session.getAttribute("candidatos"); - this.candidatos = Objects.isNull(candidatosSession) ? this.candidatos : candidatosSession; - - out.println(relatorioViewCreator.getTableHtml(candidatos,votos)); - } -} diff --git a/src/main/java/com/example/core/Servlet/votosServlet/VotoEditServlet.java b/src/main/java/com/example/core/Servlet/votosServlet/VotoEditServlet.java deleted file mode 100644 index 2a1f721..0000000 --- a/src/main/java/com/example/core/Servlet/votosServlet/VotoEditServlet.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.example.core.Servlet.votosServlet; - -import com.example.core.Model.Candidato; -import com.example.core.Model.Voto; -import com.example.core.View.VotosViews.VotoHTMLCreator; -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.List; -import java.util.Objects; -import java.util.regex.Pattern; - -@WebServlet( value = "/voto-edit") -public class VotoEditServlet extends HttpServlet { - - private VotoHTMLCreator votoHTMLCreator = new VotoHTMLCreator(); - private static Pattern pattern = Pattern.compile("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"); - - // EDIT VOTO - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - HttpSession session = request.getSession(); - PrintWriter out = response.getWriter(); - String id = String.valueOf(request.getParameter("id")); - Voto voto = new Voto(); - - List candidatos = (List)session.getAttribute("candidatos"); - List votosSession = (List) session.getAttribute("votos"); - - if(pattern.matcher(id).matches() && Objects.nonNull(votosSession)) { - voto = votosSession.stream().filter(vot -> vot.getId().equals(id)).findFirst().orElse(null); - } - out.println(votoHTMLCreator.getPageHtml(voto,candidatos)); - } -} diff --git a/src/main/java/com/example/core/View/CandidatosViews/CandidatoHTMLCreator.java b/src/main/java/com/example/core/View/CandidatosViews/CandidatoHTMLCreator.java deleted file mode 100644 index ea4f832..0000000 --- a/src/main/java/com/example/core/View/CandidatosViews/CandidatoHTMLCreator.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.example.core.View.CandidatosViews; - -import com.example.core.Model.Candidato; - -import java.util.Objects; - -public class CandidatoHTMLCreator { - - public String getPageHtml(Candidato candidato){ - String page = " " + - " " + - "Novo Candidato " + - "" + - " " + - "" + - "
" + - "
" + - "
" + - "
" + - "
" + - "
" + - "
" + - " " + - " " + - "
" + - "
" + - " " + - " " + - "
" + - "
" + - " " + - " " + - "
" + - "
" + - " " + - "
" + - "
" + - "
" + - "
" + - "
" + - "
" + - "
" + - " " + - " "; - return page; - } - private String formatId(String uuid){ - String value = Objects.isNull(uuid) ? "\"\"" : uuid; - return "value=".concat(value); - } - - private String formatNome(String nome){ - String value = Objects.isNull(nome) ? "\"\"" : nome; - return "value=".concat(value); - } - - private String formatNumeroCandidato(Integer numeroCandidato){ - String value = Objects.isNull(numeroCandidato) ? "\"\"" : String.valueOf(numeroCandidato); - return "value=".concat(value); - } -} diff --git a/src/main/java/com/example/core/View/CandidatosViews/CandidatosHTMLCreator.java b/src/main/java/com/example/core/View/CandidatosViews/CandidatosHTMLCreator.java deleted file mode 100644 index 59dd2bc..0000000 --- a/src/main/java/com/example/core/View/CandidatosViews/CandidatosHTMLCreator.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.example.core.View.CandidatosViews; - -import com.example.core.Model.Candidato; - -import java.util.List; - -public class CandidatosHTMLCreator { - - public String getTableHtml(List candidatos){ - String page = "" + - " " + - " " + - "Candidatos " + - "" + - "" + - "" + - "
" + - "Cadastrar candidato" + - "Home" + - "
" + - - "
" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - ""; - - String dados = ""; - for (Candidato candidato : candidatos) { - dados += "" + - "" + - "" + - "" + - "" + - "" + - "" ; - } - page += dados; - page += ""; - page += " \n" + - " \n" + - " \n" + - " \n" + - " "; - page += "
IdNomeNumero Candidato
" + candidato.getId() + "" + candidato.getNome() + "" + candidato.getNumeroCandidato() + "
Total registros: "+ candidatos.size() +"
"; - page += "
"; - page += ""; - page += ""; - - return page; - } -} diff --git a/src/main/java/com/example/core/View/Relatorios/RelatorioViewCreator.java b/src/main/java/com/example/core/View/Relatorios/RelatorioViewCreator.java deleted file mode 100644 index 1b43df8..0000000 --- a/src/main/java/com/example/core/View/Relatorios/RelatorioViewCreator.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.example.core.View.Relatorios; - -import com.example.core.Model.Candidato; -import com.example.core.Model.Voto; - -import java.util.List; -import java.util.stream.Collectors; - -public class RelatorioViewCreator { - - public String getTableHtml(List candidatos, List votos){ - String page = "" + - " " + - " " + - "Candidatos " + - "" + - "" + - "" + - "
" + - "Home" + - "
" + - - "
" + - "

\n" + - " Candidatos\n" + - "

" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - ""; - - String dados = ""; - for (Candidato candidato : candidatos) { - dados += "" + - "" + - "" + - "" + - "" + - "" ; - } - page += dados; - page += ""; - page += " \n" + - " \n" + - " \n" + - " \n" + - " "; - page += "
IdNomeNumero CandidatoTotal de votos recebidos
" + candidato.getId() + "" + candidato.getNome() + "" + candidato.getNumeroCandidato() + "" + totalVotosByCandidato(votos, candidato) + "
Total registros: "+ candidatos.size() +"
"; - - page += getTableVoto(votos); - - page += "
"; - page += ""; - page += ""; - - return page; - } - - public String getTableVoto(List votos){ - String page = - "

\n" + - " Votos\n" + - "

" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - ""; - - String dados = ""; - for (Voto voto : votos) { - dados += "" + - "" + - "" + - "" + - "" ; - } - page += dados; - page += ""; - page += " \n" + - " \n" + - " \n" + - " \n" + - " "; - page += "
Id votoNome CandidatoNumero Candidato
" + voto.getId() + "" + voto.getCandidato().getNome() + "" + voto.getCandidato().getNumeroCandidato() + "
Total registros: "+ votos.size() +"
"; - - return page; - } - - private Integer totalVotosByCandidato(List votos, Candidato candidato) { - return votos.stream().filter(voto -> voto.getCandidato().equals(candidato)).collect(Collectors.toList()).size(); - } -} diff --git a/src/main/java/com/example/core/View/VotosViews/VotoHTMLCreator.java b/src/main/java/com/example/core/View/VotosViews/VotoHTMLCreator.java deleted file mode 100644 index 199f18b..0000000 --- a/src/main/java/com/example/core/View/VotosViews/VotoHTMLCreator.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.example.core.View.VotosViews; - -import com.example.core.Model.Candidato; -import com.example.core.Model.Voto; - -import java.util.List; -import java.util.Objects; - -public class VotoHTMLCreator { - - public String getPageHtml(Voto voto, List candidatos){ - String page = "\n" + - "\n" + - " \n" + - " Novo Candidato\n" + - " \n" + - "\n" + - "\n" + - "
\n" + - "
\n" + - "
\n" + - "
\n" + - "
\n" + - "
\n" + - "
\n" + - " \n" + - " \n" + - "
\n" + - "
\n" + - " \n" + - " \n" + - "
\n" + - "
\n" + - " \n" + - " Home\n" + - " \n" + - "
\n" + - "
\n" + - "
\n" + - "
\n" + - "
\n" + - "
\n" + - "
\n" + - "\n" + - ""; - return page; - } - private String formatId(String uuid){ - String value = Objects.isNull(uuid) ? "\"\"" : uuid; - return "value=".concat(value); - } - - private String generateOption(Voto voto,List candidatos){ - String dados = ""; - for (Candidato candidato : candidatos) { - dados += "\n"; - } - return dados; - } - - private String selectedCandidato(Voto voto, Candidato candidato){ - if (Objects.nonNull(voto.getCandidato())) { - if (voto.getCandidato().equals(candidato)) { - return "selected"; - } - } - return null; - } -} diff --git a/src/main/java/com/example/core/View/VotosViews/VotosHTMLCreator.java b/src/main/java/com/example/core/View/VotosViews/VotosHTMLCreator.java deleted file mode 100644 index 77468e0..0000000 --- a/src/main/java/com/example/core/View/VotosViews/VotosHTMLCreator.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.example.core.View.VotosViews; - -import com.example.core.Model.Voto; - -import java.util.List; - -public class VotosHTMLCreator { - - public String getTableHtml(List votos){ - String page = "" + - " " + - " " + - "Candidatos " + - "" + - "" + - "" + - "
" + - "Home" + - "
" + - - "
" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - ""; - - String dados = ""; - for (Voto voto : votos) { - dados += "" + - "" + - "" + - "" + - "" + - "" + - "" ; - } - page += dados; - page += ""; - page += " \n" + - " \n" + - " \n" + - " \n" + - " "; - page += "
Id votoNome CandidatoNumero Candidato
" + voto.getId() + "" + voto.getCandidato().getNome() + "" + voto.getCandidato().getNumeroCandidato() + "
Total registros: "+ votos.size() +"
"; - page += "
"; - page += ""; - page += ""; - - return page; - } -} diff --git a/src/main/java/com/example/core/Votos/Controller/VotoEditServlet.java b/src/main/java/com/example/core/Votos/Controller/VotoEditServlet.java new file mode 100644 index 0000000..16e77d6 --- /dev/null +++ b/src/main/java/com/example/core/Votos/Controller/VotoEditServlet.java @@ -0,0 +1,35 @@ +package com.example.core.Votos.Controller; + +import com.example.core.Canditatos.Model.Candidato; +import com.example.core.Votos.Model.Voto; +import com.example.core.Canditatos.Repository.CandidatoRepository; +import com.example.core.Votos.Repository.VotoRepository; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +@WebServlet( value = "/voto-edit") +public class VotoEditServlet extends HttpServlet { + + private VotoRepository votoRepository = new VotoRepository(); + private CandidatoRepository candidatoRepository = new CandidatoRepository(); + + // EDIT VOTO + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String id = String.valueOf(request.getParameter("id")); + + List candidatos = candidatoRepository.findAll(); + Voto voto = votoRepository.findOne(id).orElse(new Voto()); + + request.setAttribute("candidatos", candidatos); + request.setAttribute("voto", voto); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("voto.jsp"); + requestDispatcher.forward(request,response); + } +} diff --git a/src/main/java/com/example/core/Servlet/votosServlet/VotoRemoveServlet.java b/src/main/java/com/example/core/Votos/Controller/VotoRemoveServlet.java similarity index 56% rename from src/main/java/com/example/core/Servlet/votosServlet/VotoRemoveServlet.java rename to src/main/java/com/example/core/Votos/Controller/VotoRemoveServlet.java index e835985..08c6e34 100644 --- a/src/main/java/com/example/core/Servlet/votosServlet/VotoRemoveServlet.java +++ b/src/main/java/com/example/core/Votos/Controller/VotoRemoveServlet.java @@ -1,41 +1,26 @@ -package com.example.core.Servlet.votosServlet; - -import com.example.core.Model.Voto; +package com.example.core.Votos.Controller; +import com.example.core.Votos.Repository.VotoRepository; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; @WebServlet(value = "/voto-remove") public class VotoRemoveServlet extends HttpServlet { - private List votos = new ArrayList<>(); + private VotoRepository votoRepository = new VotoRepository(); // DELETE CANDIDATO @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id = String.valueOf(request.getParameter("id")); - HttpSession session=request.getSession(); - - if (Objects.nonNull(session.getAttribute("votos"))){ - votos = (List)session.getAttribute("votos"); - } - System.out.println("Delete: "+ id); - if (Objects.isNull(id)) response.sendRedirect("/votos"); - - votos = votos.stream().filter(voto -> !voto.getId().equals(id)).collect(Collectors.toList()); - - session.setAttribute("votos",votos); + votoRepository.remove(id); response.sendRedirect(request.getContextPath() + "/votos"); } } diff --git a/src/main/java/com/example/core/Servlet/votosServlet/VotoServlet.java b/src/main/java/com/example/core/Votos/Controller/VotoServlet.java similarity index 50% rename from src/main/java/com/example/core/Servlet/votosServlet/VotoServlet.java rename to src/main/java/com/example/core/Votos/Controller/VotoServlet.java index 908f92b..e83c3e6 100644 --- a/src/main/java/com/example/core/Servlet/votosServlet/VotoServlet.java +++ b/src/main/java/com/example/core/Votos/Controller/VotoServlet.java @@ -1,17 +1,16 @@ -package com.example.core.Servlet.votosServlet; - -import com.example.core.Model.Candidato; -import com.example.core.Model.Voto; -import com.example.core.View.VotosViews.VotoHTMLCreator; +package com.example.core.Votos.Controller; +import com.example.core.Canditatos.Model.Candidato; +import com.example.core.Votos.Model.Voto; +import com.example.core.Canditatos.Repository.CandidatoRepository; +import com.example.core.Votos.Repository.VotoRepository; +import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import java.io.IOException; -import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -20,55 +19,45 @@ @WebServlet( value = "/voto") public class VotoServlet extends HttpServlet { - private List votos = new ArrayList<>(); private List candidatos = new ArrayList<>(); - private VotoHTMLCreator votoHTMLCreator = new VotoHTMLCreator(); + private CandidatoRepository candidatoRepository = new CandidatoRepository(); + private VotoRepository votoRepository = new VotoRepository(); // PAGE VOTACAO @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doGet: voto"); - - HttpSession session = request.getSession(); - PrintWriter out = response.getWriter(); - - List candidatosSession = (List) session.getAttribute("candidatos"); - this.candidatos = Objects.isNull(candidatosSession) ? this.candidatos : candidatosSession; - - if(candidatos.isEmpty()) response.sendRedirect("sem-candidatos.html"); - - out.println(votoHTMLCreator.getPageHtml(new Voto(),candidatos)); + this.candidatos = candidatoRepository.findAll(); + if(candidatos.isEmpty()){ + response.sendRedirect("sem-candidatos.html"); + } + else { + request.setAttribute("candidatos", this.candidatos); + request.setAttribute("voto", new Voto()); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("voto.jsp"); + requestDispatcher.forward(request, response); + } } // SALVAR VOTO @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - HttpSession session=request.getSession(); String id = request.getParameter("id"); String candidatoID = request.getParameter("candidato"); if (candidatoID.isEmpty()) response.sendRedirect("candidatos"); - try { - if (Objects.nonNull(session.getAttribute("votos"))){ - votos = (List)session.getAttribute("votos"); - } - - Candidato _candidato = candidatos.stream().filter(can -> can.getId().equals(candidatoID)).findFirst().orElse(null); + Candidato _candidato = candidatoRepository.findOne(candidatoID).orElse(null); if (Objects.isNull(_candidato)) response.sendRedirect("candidatos"); - if (Objects.isNull(id) || id.isEmpty()) { System.out.println("doPost: new Voto"); Voto voto = new Voto(UUID.randomUUID().toString(), _candidato); - votos.add(voto); + votoRepository.save(voto); }else{ - System.out.println("doPost: "+ id); - for(Voto voto : votos){ - if (voto.getId().equals(id)){ - voto.setCandidato(_candidato); - } - } + System.out.println("doPost: update: "+ id); + Voto voto = votoRepository.findOne(id).orElse(new Voto()); + voto.setCandidato(_candidato); + votoRepository.save(voto); } - session.setAttribute("votos", votos); }catch (Exception e){ response.sendRedirect("voto-error.html"); } diff --git a/src/main/java/com/example/core/Servlet/votosServlet/VotosServlet.java b/src/main/java/com/example/core/Votos/Controller/VotosServlet.java similarity index 50% rename from src/main/java/com/example/core/Servlet/votosServlet/VotosServlet.java rename to src/main/java/com/example/core/Votos/Controller/VotosServlet.java index c76c768..e52f82b 100644 --- a/src/main/java/com/example/core/Servlet/votosServlet/VotosServlet.java +++ b/src/main/java/com/example/core/Votos/Controller/VotosServlet.java @@ -1,35 +1,31 @@ -package com.example.core.Servlet.votosServlet; +package com.example.core.Votos.Controller; -import com.example.core.Model.Voto; -import com.example.core.View.VotosViews.VotosHTMLCreator; +import com.example.core.Votos.Model.Voto; +import com.example.core.Votos.Repository.VotoRepository; +import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import java.io.IOException; -import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; -import java.util.Objects; @WebServlet( value = "/votos") public class VotosServlet extends HttpServlet { private List votos = new ArrayList<>(); - private VotosHTMLCreator votosHTMLCreator = new VotosHTMLCreator(); + private VotoRepository votoRepository = new VotoRepository(); // PAGE VOTOS @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doGet: votos"); + this.votos = votoRepository.findAll(); - HttpSession session = request.getSession(); - PrintWriter out = response.getWriter(); - - List votosSession = (List) session.getAttribute("votos"); - this.votos = Objects.isNull(votosSession) ? this.votos : votosSession; - out.println(votosHTMLCreator.getTableHtml(votos)); + request.setAttribute("votos", this.votos); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("votos.jsp"); + requestDispatcher.forward(request,response); } } diff --git a/src/main/java/com/example/core/Votos/Model/Voto.java b/src/main/java/com/example/core/Votos/Model/Voto.java new file mode 100644 index 0000000..c938a7d --- /dev/null +++ b/src/main/java/com/example/core/Votos/Model/Voto.java @@ -0,0 +1,27 @@ +package com.example.core.Votos.Model; + +import com.example.core.Canditatos.Model.Candidato; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@Entity +public class Voto { + + @Id + private String id; + + @ManyToOne + @JoinColumn(name = "candidato_id") + private Candidato candidato; +} diff --git a/src/main/java/com/example/core/Votos/Repository/VotoRepository.java b/src/main/java/com/example/core/Votos/Repository/VotoRepository.java new file mode 100644 index 0000000..ad37e15 --- /dev/null +++ b/src/main/java/com/example/core/Votos/Repository/VotoRepository.java @@ -0,0 +1,64 @@ +package com.example.core.Votos.Repository; + +import com.example.core.Votos.Model.Voto; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; +import java.util.Collections; +import java.util.List; +import java.util.Optional; + +public class VotoRepository { + EntityManagerFactory entityManagerFactory; + EntityManager entityManager; + + public VotoRepository() { + entityManagerFactory = Persistence.createEntityManagerFactory("votacao-jpa"); + entityManager = entityManagerFactory.createEntityManager(); + } + + public void save(Voto voto) { + try { + entityManager.getTransaction().begin(); + entityManager.persist(voto); + entityManager.getTransaction().commit(); + }catch (Exception e){ + System.out.println(e); + } + } + + public void remove(String id) { + try { + Voto voto = findOne(id).orElse(null); + entityManager.getTransaction().begin(); + entityManager.remove(voto); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + System.out.println(e); + } + } + + public Optional findOne(String id){ + Voto voto = new Voto(); + try { + voto = entityManager.find(Voto.class, id); + }catch (Exception e){ + System.out.println(e); + } + return Optional.ofNullable(voto); + } + + @SuppressWarnings("unchecked") + public List findAll(){ + List votos = Collections.emptyList(); + try { + votos = entityManager.createQuery("select voto from Voto voto").getResultList(); + } + catch (Exception e){ + System.out.println(e); + } + return votos; + } +} diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..53a05b6 --- /dev/null +++ b/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/candidato.jsp b/src/main/webapp/candidato.jsp new file mode 100644 index 0000000..c9885c9 --- /dev/null +++ b/src/main/webapp/candidato.jsp @@ -0,0 +1,49 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + Novo Candidato + + + + +
+
+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/main/webapp/candidatos.jsp b/src/main/webapp/candidatos.jsp new file mode 100644 index 0000000..cb6f873 --- /dev/null +++ b/src/main/webapp/candidatos.jsp @@ -0,0 +1,54 @@ +<%@ page import="com.example.core.Canditatos.Model.Candidato" %> +<%@ page import="java.util.List" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + Candidatos + + + + + + + +
+ + + + + + + + + + + + + <% List candidatos = (List) request.getAttribute("candidatos"); + for (Candidato candidato : candidatos) { %> + + + + + + + + <% } %> + + + + + + + +
IdNomeNumero Candidato
<%= candidato.getId() %> <%= candidato.getNome() %> <%= candidato.getNumeroCandidato() %> class="fas fa-pencil-alt"> class="fas fa-trash-alt">
Total registros:${ candidatos.size() }
+
+ + + diff --git a/src/main/webapp/relatorio.jsp b/src/main/webapp/relatorio.jsp new file mode 100644 index 0000000..1d1b47f --- /dev/null +++ b/src/main/webapp/relatorio.jsp @@ -0,0 +1,85 @@ +<%@ page import="com.example.core.Canditatos.Model.Candidato" %> +<%@ page import="java.util.List" %> +<%@ page import="com.example.core.Votos.Model.Voto" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + Candidatos + + + + + +
+ Home +
+ +
+

+ Candidatos +

+ + + + + + + + + + + <% List candidatos = (List) request.getAttribute("candidatos"); + List votos = (List) request.getAttribute("votos"); + for (Candidato candidato : candidatos) { %> + + + + + + + <% } %> + + + + + + + +
IdNomeNumero CandidatoTotal de votos recebidos
<%= candidato.getId() %> <%= candidato.getNome() %> <%= candidato.getNumeroCandidato() %> <%= votos.stream().filter(voto -> voto.getCandidato().getId().equals(candidato.getId())).count() %>
Total registros: ${candidatos.size()}
+ +

+ Votos +

+ + + + + + + + + + + <%for (Voto voto : votos) {%> + + + + + + <% } %> + + + + + + + +
Id votoNome CandidatoNumero Candidato
<%= voto.getId()%> <%= voto.getCandidato().getNome()%> <%= voto.getCandidato().getNumeroCandidato()%>
Total registros:${votos.size()}
+ +
+ + + diff --git a/src/main/webapp/voto.jsp b/src/main/webapp/voto.jsp new file mode 100644 index 0000000..9b2308c --- /dev/null +++ b/src/main/webapp/voto.jsp @@ -0,0 +1,65 @@ +<%@ page import="com.example.core.Canditatos.Model.Candidato" %> +<%@ page import="java.util.List" %> +<%@ page import="com.example.core.Votos.Model.Voto" %> +<%@ page import="java.util.Objects" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + Novo Candidato + + + + +
+
+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+
+
+ + +<%! + private String selectedCandidato(Voto voto, Candidato candidato){ + if (Objects.nonNull(voto.getCandidato())) { + if (voto.getCandidato().getId().equals(candidato.getId())) { + return "selected"; + } + } + return null; + } +%> \ No newline at end of file diff --git a/src/main/webapp/votos.jsp b/src/main/webapp/votos.jsp new file mode 100644 index 0000000..a34395f --- /dev/null +++ b/src/main/webapp/votos.jsp @@ -0,0 +1,55 @@ +<%@ page import="com.example.core.Votos.Model.Voto" %> +<%@ page import="java.util.List" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + Candidatos + + + + + +
+ Home +
+ +
+ + + + + + + + + + + + + <% List votos = (List) request.getAttribute("votos"); + for (Voto voto : votos) {%> + + + + + + + + <% } %> + + + + + + +
Id votoNome CandidatoNumero Candidato
<%= voto.getId()%> + <%= voto.getCandidato().getNome()%> + <%= voto.getCandidato().getNumeroCandidato()%> + class="fas fa-pencil-alt"> class="fas fa-trash-alt">
Total registros:${votos.size()}
+
+ + + From 66cd647663ef07cbde733280399dcd57812dbe79 Mon Sep 17 00:00:00 2001 From: AugustoSavi Date: Sat, 27 Nov 2021 19:58:23 -0300 Subject: [PATCH 02/10] Mesarios --- .../Controller/MesarioEditServlet.java | 30 ++++++++ .../Controller/MesarioRemoveServlet.java | 30 ++++++++ .../Mesarios/Controller/MesariosServlet.java | 70 +++++++++++++++++++ .../example/core/Mesarios/Model/Mesario.java | 27 +++++++ .../Repository/MesarioRepository.java | 65 +++++++++++++++++ src/main/webapp/index.html | 4 +- .../webapp/mesarios/mesario-duplicado.html | 29 ++++++++ src/main/webapp/mesarios/mesario.jsp | 55 +++++++++++++++ src/main/webapp/mesarios/mesarios.jsp | 56 +++++++++++++++ 9 files changed, 365 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/example/core/Mesarios/Controller/MesarioEditServlet.java create mode 100644 src/main/java/com/example/core/Mesarios/Controller/MesarioRemoveServlet.java create mode 100644 src/main/java/com/example/core/Mesarios/Controller/MesariosServlet.java create mode 100644 src/main/java/com/example/core/Mesarios/Model/Mesario.java create mode 100644 src/main/java/com/example/core/Mesarios/Repository/MesarioRepository.java create mode 100644 src/main/webapp/mesarios/mesario-duplicado.html create mode 100644 src/main/webapp/mesarios/mesario.jsp create mode 100644 src/main/webapp/mesarios/mesarios.jsp diff --git a/src/main/java/com/example/core/Mesarios/Controller/MesarioEditServlet.java b/src/main/java/com/example/core/Mesarios/Controller/MesarioEditServlet.java new file mode 100644 index 0000000..5e18855 --- /dev/null +++ b/src/main/java/com/example/core/Mesarios/Controller/MesarioEditServlet.java @@ -0,0 +1,30 @@ +package com.example.core.Mesarios.Controller; + +import com.example.core.Mesarios.Model.Mesario; +import com.example.core.Mesarios.Repository.MesarioRepository; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet( value = "/mesario-edit") +public class MesarioEditServlet extends HttpServlet { + + private MesarioRepository candidatoRepository = new MesarioRepository(); + + // EDIT CANDIDATO + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String id = String.valueOf(request.getParameter("id")); + + Mesario candidato = candidatoRepository.findOne(id).orElse(new Mesario()); + + request.setAttribute("mesario", candidato); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("mesarios/mesario.jsp"); + requestDispatcher.forward(request,response); + } +} diff --git a/src/main/java/com/example/core/Mesarios/Controller/MesarioRemoveServlet.java b/src/main/java/com/example/core/Mesarios/Controller/MesarioRemoveServlet.java new file mode 100644 index 0000000..87dbdfe --- /dev/null +++ b/src/main/java/com/example/core/Mesarios/Controller/MesarioRemoveServlet.java @@ -0,0 +1,30 @@ +package com.example.core.Mesarios.Controller; + +import com.example.core.Mesarios.Repository.MesarioRepository; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.*; + +@WebServlet( value = "/mesario-remove") +public class MesarioRemoveServlet extends HttpServlet { + + MesarioRepository mesarioRepository = new MesarioRepository(); + + // DELETE MESARIO + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String id = String.valueOf(request.getParameter("id")); + System.out.println("Delete: "+ id); + + if (Objects.isNull(id)) response.sendRedirect("/mesarios"); + + mesarioRepository.remove(id); + + response.sendRedirect(request.getContextPath() + "/mesarios"); + } +} diff --git a/src/main/java/com/example/core/Mesarios/Controller/MesariosServlet.java b/src/main/java/com/example/core/Mesarios/Controller/MesariosServlet.java new file mode 100644 index 0000000..a9fb6f4 --- /dev/null +++ b/src/main/java/com/example/core/Mesarios/Controller/MesariosServlet.java @@ -0,0 +1,70 @@ +package com.example.core.Mesarios.Controller; + +import com.example.core.Mesarios.Model.Mesario; +import com.example.core.Mesarios.Repository.MesarioRepository; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.UUID; + + +@WebServlet(value = "/mesarios") +public class MesariosServlet extends HttpServlet { + private List mesarios = new ArrayList<>(); + + private MesarioRepository mesarioRepository = new MesarioRepository(); + + // LISTAGEM MESARIOS + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + this.mesarios = mesarioRepository.findAll(); + + request.setAttribute("mesarios", this.mesarios); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("mesarios/mesarios.jsp"); + requestDispatcher.forward(request,response); + } + + // SALVAR MESARIO + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String id = request.getParameter("id"); + String nome = request.getParameter("nome"); + String cpf = request.getParameter("cpf"); + String numeroTelefone = request.getParameter("numeroTelefone"); + + if (validaDuplicado(id,cpf)){ + response.sendRedirect("mesarios/mesario-duplicado.html"); + }else { + if (Objects.isNull(id) || id.length() == 0) { + System.out.println("doPost: new mesario"); + Mesario candidato = new Mesario(UUID.randomUUID().toString(), nome, cpf, numeroTelefone); + mesarioRepository.save(candidato); + } else { + System.out.println("doPost mesario: update: " + id); + Mesario candidato = mesarioRepository.findOne(id).orElse(new Mesario()); + candidato.setNome(nome); + candidato.setCpf(cpf); + candidato.setNumeroTelefone(numeroTelefone); + mesarioRepository.save(candidato); + } + response.sendRedirect(request.getRequestURI()); + } + } + + private boolean validaDuplicado(String id, String cpf){ + for (Mesario mesario: this.mesarios){ + if (mesario.getCpf().equals(cpf) && !mesario.getId().equals(id)){ + return true; + } + } + return false; + } +} diff --git a/src/main/java/com/example/core/Mesarios/Model/Mesario.java b/src/main/java/com/example/core/Mesarios/Model/Mesario.java new file mode 100644 index 0000000..89b369e --- /dev/null +++ b/src/main/java/com/example/core/Mesarios/Model/Mesario.java @@ -0,0 +1,27 @@ +package com.example.core.Mesarios.Model; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@Entity +public class Mesario { + + @Id + private String id; + @Column + private String nome; + @Column + private String cpf; + @Column + private String numeroTelefone; +} diff --git a/src/main/java/com/example/core/Mesarios/Repository/MesarioRepository.java b/src/main/java/com/example/core/Mesarios/Repository/MesarioRepository.java new file mode 100644 index 0000000..6e16658 --- /dev/null +++ b/src/main/java/com/example/core/Mesarios/Repository/MesarioRepository.java @@ -0,0 +1,65 @@ +package com.example.core.Mesarios.Repository; + +import com.example.core.Mesarios.Model.Mesario; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; +import java.util.Collections; +import java.util.List; +import java.util.Optional; + +public class MesarioRepository { + EntityManagerFactory entityManagerFactory; + EntityManager entityManager; + + public MesarioRepository() { + entityManagerFactory = Persistence.createEntityManagerFactory("votacao-jpa"); + entityManager = entityManagerFactory.createEntityManager(); + } + + public void save(Mesario mesario) { + try { + entityManager.getTransaction().begin(); + entityManager.persist(mesario); + entityManager.getTransaction().commit(); + entityManager.getTransaction(); + }catch (Exception e){ + System.out.println(e); + } + } + + public void remove(String id) { + try { + Mesario mesario = findOne(id).orElse(null); + entityManager.getTransaction().begin(); + entityManager.remove(mesario); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + System.out.println(e); + } + } + + public Optional findOne(String id){ + Mesario mesario = new Mesario(); + try { + mesario = entityManager.find(Mesario.class, id); + }catch (Exception e){ + System.out.println(e); + } + return Optional.ofNullable(mesario); + } + + @SuppressWarnings("unchecked") + public List findAll(){ + List mesarios = Collections.emptyList(); + try { + mesarios = entityManager.createQuery("select mesario from Mesario mesario").getResultList(); + } + catch (Exception e){ + System.out.println(e); + } + return mesarios; + } +} diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html index 3ac5497..55f6fa2 100644 --- a/src/main/webapp/index.html +++ b/src/main/webapp/index.html @@ -12,8 +12,10 @@
- + + + + \ No newline at end of file diff --git a/src/main/webapp/mesarios/mesario.jsp b/src/main/webapp/mesarios/mesario.jsp new file mode 100644 index 0000000..f97c80b --- /dev/null +++ b/src/main/webapp/mesarios/mesario.jsp @@ -0,0 +1,55 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + Novo Candidato + + + + +
+
+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/main/webapp/mesarios/mesarios.jsp b/src/main/webapp/mesarios/mesarios.jsp new file mode 100644 index 0000000..9bffb87 --- /dev/null +++ b/src/main/webapp/mesarios/mesarios.jsp @@ -0,0 +1,56 @@ +<%@ page import="java.util.List" %> +<%@ page import="com.example.core.Mesarios.Model.Mesario" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + Candidatos + + + + + + + +
+ + + + + + + + + + + + + + <% List mesarios = (List) request.getAttribute("mesarios"); + for (Mesario mesario : mesarios) { %> + + + + + + + + + <% } %> + + + + + + + +
IdNomeCpfNumero telefone
<%= mesario.getId() %> <%= mesario.getNome() %> <%= mesario.getCpf() %> <%= mesario.getNumeroTelefone() %> class="fas fa-pencil-alt"> class="fas fa-trash-alt">
Total registros:${ mesarios.size() }
+
+ + + From 9bd5ced82fb6b5ba206bb0da0ac356464bea0402 Mon Sep 17 00:00:00 2001 From: AugustoSavi Date: Sat, 27 Nov 2021 20:13:07 -0300 Subject: [PATCH 03/10] =?UTF-8?q?Refator=C3=A7=C3=A3o=20view=20candidato?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Canditatos/Controller/CandidatoEditServlet.java | 2 +- .../Canditatos/Controller/CandidatosServlet.java | 12 ++++++------ .../example/core/Votos/Controller/VotoServlet.java | 2 +- .../webapp/{ => candidatos}/candidato-duplicado.html | 0 src/main/webapp/{ => candidatos}/candidato.jsp | 0 src/main/webapp/{ => candidatos}/candidatos.jsp | 0 src/main/webapp/{ => candidatos}/sem-candidatos.html | 0 7 files changed, 8 insertions(+), 8 deletions(-) rename src/main/webapp/{ => candidatos}/candidato-duplicado.html (100%) rename src/main/webapp/{ => candidatos}/candidato.jsp (100%) rename src/main/webapp/{ => candidatos}/candidatos.jsp (100%) rename src/main/webapp/{ => candidatos}/sem-candidatos.html (100%) diff --git a/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java b/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java index 93e6cf1..a193742 100644 --- a/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java +++ b/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java @@ -23,7 +23,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t Candidato candidato = candidatoRepository.findOne(id).orElse(new Candidato()); request.setAttribute("candidato", candidato); - RequestDispatcher requestDispatcher = request.getRequestDispatcher("candidato.jsp"); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("candidatos/candidato.jsp"); requestDispatcher.forward(request,response); } } diff --git a/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java b/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java index 5029543..fafdb26 100644 --- a/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java +++ b/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java @@ -27,7 +27,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t this.candidatos = candidatoRepository.findAll(); request.setAttribute("candidatos", this.candidatos); - RequestDispatcher requestDispatcher = request.getRequestDispatcher("candidatos.jsp"); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("candidatos/candidatos.jsp"); requestDispatcher.forward(request,response); } @@ -38,15 +38,15 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) String nome = request.getParameter("nome"); String numero = request.getParameter("numero"); - if (validaDuplicado(nome,numero)){ - response.sendRedirect("candidato-duplicado.html"); + if (validaDuplicado(id, nome, numero)){ + response.sendRedirect("candidatos/candidato-duplicado.html"); }else { if (Objects.isNull(id) || id.length() == 0) { System.out.println("doPost: new candidato"); Candidato candidato = new Candidato(UUID.randomUUID().toString(), nome, Integer.valueOf(numero)); candidatoRepository.save(candidato); } else { - System.out.println("doPost: update: " + id); + System.out.println("doPost: candidato update: " + id); Candidato candidato = candidatoRepository.findOne(id).orElse(new Candidato()); candidato.setNome(nome); candidato.setNumeroCandidato(Integer.valueOf(numero)); @@ -56,9 +56,9 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) } } - private boolean validaDuplicado(String nome, String numero){ + private boolean validaDuplicado(String id, String nome, String numero){ for (Candidato candidato: this.candidatos){ - if (candidato.getNome().equals(nome) && candidato.getNumeroCandidato().equals(Integer.valueOf(numero))){ + if (candidato.getNome().equals(nome) && candidato.getNumeroCandidato().equals(Integer.valueOf(numero)) && !candidato.getId().equals(id)){ return true; } } diff --git a/src/main/java/com/example/core/Votos/Controller/VotoServlet.java b/src/main/java/com/example/core/Votos/Controller/VotoServlet.java index e83c3e6..f21d1e8 100644 --- a/src/main/java/com/example/core/Votos/Controller/VotoServlet.java +++ b/src/main/java/com/example/core/Votos/Controller/VotoServlet.java @@ -29,7 +29,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t System.out.println("doGet: voto"); this.candidatos = candidatoRepository.findAll(); if(candidatos.isEmpty()){ - response.sendRedirect("sem-candidatos.html"); + response.sendRedirect("candidatos/sem-candidatos.html"); } else { request.setAttribute("candidatos", this.candidatos); diff --git a/src/main/webapp/candidato-duplicado.html b/src/main/webapp/candidatos/candidato-duplicado.html similarity index 100% rename from src/main/webapp/candidato-duplicado.html rename to src/main/webapp/candidatos/candidato-duplicado.html diff --git a/src/main/webapp/candidato.jsp b/src/main/webapp/candidatos/candidato.jsp similarity index 100% rename from src/main/webapp/candidato.jsp rename to src/main/webapp/candidatos/candidato.jsp diff --git a/src/main/webapp/candidatos.jsp b/src/main/webapp/candidatos/candidatos.jsp similarity index 100% rename from src/main/webapp/candidatos.jsp rename to src/main/webapp/candidatos/candidatos.jsp diff --git a/src/main/webapp/sem-candidatos.html b/src/main/webapp/candidatos/sem-candidatos.html similarity index 100% rename from src/main/webapp/sem-candidatos.html rename to src/main/webapp/candidatos/sem-candidatos.html From 04710b0ad8269899af3f7cce88fadab895f808b9 Mon Sep 17 00:00:00 2001 From: AugustoSavi Date: Sat, 27 Nov 2021 20:39:37 -0300 Subject: [PATCH 04/10] =?UTF-8?q?Refatora=C3=A7=C3=A3o=20view=20votos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/Votos/Controller/VotoEditServlet.java | 2 +- .../example/core/Votos/Controller/VotoServlet.java | 14 +++++++------- .../core/Votos/Controller/VotosServlet.java | 8 +++----- src/main/webapp/{ => votos}/voto-error.html | 0 src/main/webapp/{ => votos}/voto-success.html | 0 src/main/webapp/{ => votos}/voto.jsp | 0 src/main/webapp/{ => votos}/votos.jsp | 0 7 files changed, 11 insertions(+), 13 deletions(-) rename src/main/webapp/{ => votos}/voto-error.html (100%) rename src/main/webapp/{ => votos}/voto-success.html (100%) rename src/main/webapp/{ => votos}/voto.jsp (100%) rename src/main/webapp/{ => votos}/votos.jsp (100%) diff --git a/src/main/java/com/example/core/Votos/Controller/VotoEditServlet.java b/src/main/java/com/example/core/Votos/Controller/VotoEditServlet.java index 16e77d6..dd05d36 100644 --- a/src/main/java/com/example/core/Votos/Controller/VotoEditServlet.java +++ b/src/main/java/com/example/core/Votos/Controller/VotoEditServlet.java @@ -29,7 +29,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t request.setAttribute("candidatos", candidatos); request.setAttribute("voto", voto); - RequestDispatcher requestDispatcher = request.getRequestDispatcher("voto.jsp"); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("votos/voto.jsp"); requestDispatcher.forward(request,response); } } diff --git a/src/main/java/com/example/core/Votos/Controller/VotoServlet.java b/src/main/java/com/example/core/Votos/Controller/VotoServlet.java index f21d1e8..08573a9 100644 --- a/src/main/java/com/example/core/Votos/Controller/VotoServlet.java +++ b/src/main/java/com/example/core/Votos/Controller/VotoServlet.java @@ -11,7 +11,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.UUID; @@ -19,22 +18,23 @@ @WebServlet( value = "/voto") public class VotoServlet extends HttpServlet { - private List candidatos = new ArrayList<>(); private CandidatoRepository candidatoRepository = new CandidatoRepository(); private VotoRepository votoRepository = new VotoRepository(); // PAGE VOTACAO @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + List candidatos = candidatoRepository.findAll(); + System.out.println("doGet: voto"); - this.candidatos = candidatoRepository.findAll(); + if(candidatos.isEmpty()){ response.sendRedirect("candidatos/sem-candidatos.html"); } else { - request.setAttribute("candidatos", this.candidatos); + request.setAttribute("candidatos", candidatos); request.setAttribute("voto", new Voto()); - RequestDispatcher requestDispatcher = request.getRequestDispatcher("voto.jsp"); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("votos/voto.jsp"); requestDispatcher.forward(request, response); } } @@ -59,8 +59,8 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) votoRepository.save(voto); } }catch (Exception e){ - response.sendRedirect("voto-error.html"); + response.sendRedirect("votos/voto-error.html"); } - response.sendRedirect("voto-success.html"); + response.sendRedirect("votos/voto-success.html"); } } diff --git a/src/main/java/com/example/core/Votos/Controller/VotosServlet.java b/src/main/java/com/example/core/Votos/Controller/VotosServlet.java index e52f82b..6072912 100644 --- a/src/main/java/com/example/core/Votos/Controller/VotosServlet.java +++ b/src/main/java/com/example/core/Votos/Controller/VotosServlet.java @@ -9,23 +9,21 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.ArrayList; import java.util.List; @WebServlet( value = "/votos") public class VotosServlet extends HttpServlet { - private List votos = new ArrayList<>(); private VotoRepository votoRepository = new VotoRepository(); // PAGE VOTOS @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doGet: votos"); - this.votos = votoRepository.findAll(); + List votos = votoRepository.findAll(); - request.setAttribute("votos", this.votos); - RequestDispatcher requestDispatcher = request.getRequestDispatcher("votos.jsp"); + request.setAttribute("votos", votos); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("votos/votos.jsp"); requestDispatcher.forward(request,response); } } diff --git a/src/main/webapp/voto-error.html b/src/main/webapp/votos/voto-error.html similarity index 100% rename from src/main/webapp/voto-error.html rename to src/main/webapp/votos/voto-error.html diff --git a/src/main/webapp/voto-success.html b/src/main/webapp/votos/voto-success.html similarity index 100% rename from src/main/webapp/voto-success.html rename to src/main/webapp/votos/voto-success.html diff --git a/src/main/webapp/voto.jsp b/src/main/webapp/votos/voto.jsp similarity index 100% rename from src/main/webapp/voto.jsp rename to src/main/webapp/votos/voto.jsp diff --git a/src/main/webapp/votos.jsp b/src/main/webapp/votos/votos.jsp similarity index 100% rename from src/main/webapp/votos.jsp rename to src/main/webapp/votos/votos.jsp From 046070a9b6168cd46255ba51919b041928cd08ab Mon Sep 17 00:00:00 2001 From: AugustoSavi Date: Sat, 27 Nov 2021 22:58:54 -0300 Subject: [PATCH 05/10] convertendo ID de string para Long --- .../Controller/CandidatoEditServlet.java | 4 ++- .../Controller/CandidatoRemoveServlet.java | 2 +- .../Controller/CandidatosServlet.java | 14 ++++---- .../core/Canditatos/Model/Candidato.java | 9 ++++- .../Repository/CandidatoRepository.java | 4 +-- .../Controller/MesarioEditServlet.java | 4 +-- .../Mesarios/Controller/MesariosServlet.java | 10 +++--- .../Repository/MesarioRepository.java | 2 -- .../Controller/relatorioServlet.java | 9 ++++- .../webapp/{ => relatorios}/relatorio.jsp | 34 +++++++++++++++++++ 10 files changed, 70 insertions(+), 22 deletions(-) rename src/main/webapp/{ => relatorios}/relatorio.jsp (74%) diff --git a/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java b/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java index a193742..6afc6f5 100644 --- a/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java +++ b/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java @@ -1,5 +1,6 @@ package com.example.core.Canditatos.Controller; +import com.example.core.Utils.Utils; import com.example.core.Canditatos.Model.Candidato; import com.example.core.Canditatos.Repository.CandidatoRepository; import javax.servlet.RequestDispatcher; @@ -14,11 +15,12 @@ public class CandidatoEditServlet extends HttpServlet { private CandidatoRepository candidatoRepository = new CandidatoRepository(); + private Utils utils = new Utils(); // EDIT CANDIDATO @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String id = String.valueOf(request.getParameter("id")); + Long id = utils.getId(String.valueOf(request.getParameter("id"))); Candidato candidato = candidatoRepository.findOne(id).orElse(new Candidato()); diff --git a/src/main/java/com/example/core/Canditatos/Controller/CandidatoRemoveServlet.java b/src/main/java/com/example/core/Canditatos/Controller/CandidatoRemoveServlet.java index 5275226..08f4c7e 100644 --- a/src/main/java/com/example/core/Canditatos/Controller/CandidatoRemoveServlet.java +++ b/src/main/java/com/example/core/Canditatos/Controller/CandidatoRemoveServlet.java @@ -17,7 +17,7 @@ public class CandidatoRemoveServlet extends HttpServlet { // DELETE CANDIDATO @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String id = String.valueOf(request.getParameter("id")); + Long id = Long.valueOf(request.getParameter("id")); System.out.println("Delete: "+ id); if (Objects.isNull(id)) response.sendRedirect("/candidatos"); diff --git a/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java b/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java index fafdb26..b1f942a 100644 --- a/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java +++ b/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java @@ -2,6 +2,8 @@ import com.example.core.Canditatos.Model.Candidato; import com.example.core.Canditatos.Repository.CandidatoRepository; +import com.example.core.Utils.Utils; + import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; @@ -12,14 +14,14 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; -import java.util.UUID; @WebServlet(value = "/candidatos") public class CandidatosServlet extends HttpServlet { - private List candidatos = new ArrayList<>(); + private List candidatos = new ArrayList<>(); private CandidatoRepository candidatoRepository = new CandidatoRepository(); + private Utils utils = new Utils(); // LISTAGEM CANDIDATOS @Override @@ -34,16 +36,16 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t // SALVAR CANDIDATO @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String id = request.getParameter("id"); + Long id = utils.getId(request.getParameter("id")); String nome = request.getParameter("nome"); String numero = request.getParameter("numero"); if (validaDuplicado(id, nome, numero)){ response.sendRedirect("candidatos/candidato-duplicado.html"); }else { - if (Objects.isNull(id) || id.length() == 0) { + if (Objects.isNull(id)) { System.out.println("doPost: new candidato"); - Candidato candidato = new Candidato(UUID.randomUUID().toString(), nome, Integer.valueOf(numero)); + Candidato candidato = new Candidato(nome, Integer.valueOf(numero)); candidatoRepository.save(candidato); } else { System.out.println("doPost: candidato update: " + id); @@ -56,7 +58,7 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) } } - private boolean validaDuplicado(String id, String nome, String numero){ + private boolean validaDuplicado(Long id, String nome, String numero){ for (Candidato candidato: this.candidatos){ if (candidato.getNome().equals(nome) && candidato.getNumeroCandidato().equals(Integer.valueOf(numero)) && !candidato.getId().equals(id)){ return true; diff --git a/src/main/java/com/example/core/Canditatos/Model/Candidato.java b/src/main/java/com/example/core/Canditatos/Model/Candidato.java index a217656..ba0575c 100644 --- a/src/main/java/com/example/core/Canditatos/Model/Candidato.java +++ b/src/main/java/com/example/core/Canditatos/Model/Candidato.java @@ -7,6 +7,7 @@ import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.GeneratedValue; import javax.persistence.Id; @Getter @@ -17,9 +18,15 @@ public class Candidato { @Id - private String id; + @GeneratedValue + private Long id; @Column private String nome; @Column private Integer numeroCandidato; + + public Candidato(String nome, Integer numeroCandidato){ + this.nome = nome; + this.numeroCandidato = numeroCandidato; + } } diff --git a/src/main/java/com/example/core/Canditatos/Repository/CandidatoRepository.java b/src/main/java/com/example/core/Canditatos/Repository/CandidatoRepository.java index b090793..9b2a909 100644 --- a/src/main/java/com/example/core/Canditatos/Repository/CandidatoRepository.java +++ b/src/main/java/com/example/core/Canditatos/Repository/CandidatoRepository.java @@ -29,7 +29,7 @@ public void save(Candidato candidato) { } } - public void remove(String id) { + public void remove(Long id) { try { Candidato candidato = findOne(id).orElse(null); entityManager.getTransaction().begin(); @@ -41,7 +41,7 @@ public void remove(String id) { } } - public Optional findOne(String id){ + public Optional findOne(Long id){ Candidato candidato = new Candidato(); try { candidato = entityManager.find(Candidato.class, id); diff --git a/src/main/java/com/example/core/Mesarios/Controller/MesarioEditServlet.java b/src/main/java/com/example/core/Mesarios/Controller/MesarioEditServlet.java index 5e18855..b0f6997 100644 --- a/src/main/java/com/example/core/Mesarios/Controller/MesarioEditServlet.java +++ b/src/main/java/com/example/core/Mesarios/Controller/MesarioEditServlet.java @@ -21,9 +21,9 @@ public class MesarioEditServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id = String.valueOf(request.getParameter("id")); - Mesario candidato = candidatoRepository.findOne(id).orElse(new Mesario()); + Mesario mesario = candidatoRepository.findOne(id).orElse(new Mesario()); - request.setAttribute("mesario", candidato); + request.setAttribute("mesario", mesario); RequestDispatcher requestDispatcher = request.getRequestDispatcher("mesarios/mesario.jsp"); requestDispatcher.forward(request,response); } diff --git a/src/main/java/com/example/core/Mesarios/Controller/MesariosServlet.java b/src/main/java/com/example/core/Mesarios/Controller/MesariosServlet.java index a9fb6f4..bdac494 100644 --- a/src/main/java/com/example/core/Mesarios/Controller/MesariosServlet.java +++ b/src/main/java/com/example/core/Mesarios/Controller/MesariosServlet.java @@ -10,24 +10,21 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.UUID; - @WebServlet(value = "/mesarios") public class MesariosServlet extends HttpServlet { - private List mesarios = new ArrayList<>(); private MesarioRepository mesarioRepository = new MesarioRepository(); // LISTAGEM MESARIOS @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - this.mesarios = mesarioRepository.findAll(); + List mesarios = mesarioRepository.findAll(); - request.setAttribute("mesarios", this.mesarios); + request.setAttribute("mesarios", mesarios); RequestDispatcher requestDispatcher = request.getRequestDispatcher("mesarios/mesarios.jsp"); requestDispatcher.forward(request,response); } @@ -60,7 +57,8 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) } private boolean validaDuplicado(String id, String cpf){ - for (Mesario mesario: this.mesarios){ + List mesarios = mesarioRepository.findAll(); + for (Mesario mesario: mesarios){ if (mesario.getCpf().equals(cpf) && !mesario.getId().equals(id)){ return true; } diff --git a/src/main/java/com/example/core/Mesarios/Repository/MesarioRepository.java b/src/main/java/com/example/core/Mesarios/Repository/MesarioRepository.java index 6e16658..b45dcf6 100644 --- a/src/main/java/com/example/core/Mesarios/Repository/MesarioRepository.java +++ b/src/main/java/com/example/core/Mesarios/Repository/MesarioRepository.java @@ -1,7 +1,6 @@ package com.example.core.Mesarios.Repository; import com.example.core.Mesarios.Model.Mesario; - import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; @@ -23,7 +22,6 @@ public void save(Mesario mesario) { entityManager.getTransaction().begin(); entityManager.persist(mesario); entityManager.getTransaction().commit(); - entityManager.getTransaction(); }catch (Exception e){ System.out.println(e); } diff --git a/src/main/java/com/example/core/Relatorios/Controller/relatorioServlet.java b/src/main/java/com/example/core/Relatorios/Controller/relatorioServlet.java index 8323855..ca3712d 100644 --- a/src/main/java/com/example/core/Relatorios/Controller/relatorioServlet.java +++ b/src/main/java/com/example/core/Relatorios/Controller/relatorioServlet.java @@ -1,6 +1,8 @@ package com.example.core.Relatorios.Controller; import com.example.core.Canditatos.Model.Candidato; +import com.example.core.Mesarios.Model.Mesario; +import com.example.core.Mesarios.Repository.MesarioRepository; import com.example.core.Votos.Model.Voto; import com.example.core.Canditatos.Repository.CandidatoRepository; import com.example.core.Votos.Repository.VotoRepository; @@ -17,8 +19,11 @@ @WebServlet( value = "/relatorios") public class relatorioServlet extends HttpServlet { + private List mesarios = new ArrayList<>(); private List votos = new ArrayList<>(); private List candidatos = new ArrayList<>(); + + private MesarioRepository mesarioRepository = new MesarioRepository(); private VotoRepository votoRepository = new VotoRepository(); private CandidatoRepository candidatoRepository = new CandidatoRepository(); @@ -27,12 +32,14 @@ public class relatorioServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doGet: relatorios"); + this.mesarios = mesarioRepository.findAll(); this.votos = votoRepository.findAll(); this.candidatos = candidatoRepository.findAll(); + request.setAttribute("mesarios", this.mesarios); request.setAttribute("candidatos", this.candidatos); request.setAttribute("votos", this.votos); - RequestDispatcher requestDispatcher = request.getRequestDispatcher("relatorio.jsp"); + RequestDispatcher requestDispatcher = request.getRequestDispatcher("relatorios/relatorio.jsp"); requestDispatcher.forward(request,response); } } diff --git a/src/main/webapp/relatorio.jsp b/src/main/webapp/relatorios/relatorio.jsp similarity index 74% rename from src/main/webapp/relatorio.jsp rename to src/main/webapp/relatorios/relatorio.jsp index 1d1b47f..a86ca92 100644 --- a/src/main/webapp/relatorio.jsp +++ b/src/main/webapp/relatorios/relatorio.jsp @@ -1,6 +1,7 @@ <%@ page import="com.example.core.Canditatos.Model.Candidato" %> <%@ page import="java.util.List" %> <%@ page import="com.example.core.Votos.Model.Voto" %> +<%@ page import="com.example.core.Mesarios.Model.Mesario" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> @@ -18,6 +19,39 @@
+ +

+ Mesários +

+ + + + + + + + + + + + <% List mesarios = (List) request.getAttribute("mesarios"); + for (Mesario mesario : mesarios) { %> + + + + + + + <% } %> + + + + + + + +
IdNomeCpfNumero telefone
<%= mesario.getId() %> <%= mesario.getNome() %> <%= mesario.getCpf() %> <%= mesario.getNumeroTelefone() %>
Total registros:${ mesarios.size() }
+

Candidatos

From 5f6701f327290d7f3cb8ae7dd227acd269c9e578 Mon Sep 17 00:00:00 2001 From: AugustoSavi Date: Sat, 27 Nov 2021 23:21:17 -0300 Subject: [PATCH 06/10] convertendo ID de string para Long --- .../Controller/CandidatoEditServlet.java | 2 +- .../Controller/CandidatoRemoveServlet.java | 7 ++++--- .../Controller/CandidatosServlet.java | 2 +- .../java/com/example/core/Utils/Utils.java | 20 +++++++++++++++++++ 4 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/example/core/Utils/Utils.java diff --git a/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java b/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java index 6afc6f5..88b8f2c 100644 --- a/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java +++ b/src/main/java/com/example/core/Canditatos/Controller/CandidatoEditServlet.java @@ -20,7 +20,7 @@ public class CandidatoEditServlet extends HttpServlet { // EDIT CANDIDATO @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - Long id = utils.getId(String.valueOf(request.getParameter("id"))); + Long id = utils.getId(request.getParameter("id")); Candidato candidato = candidatoRepository.findOne(id).orElse(new Candidato()); diff --git a/src/main/java/com/example/core/Canditatos/Controller/CandidatoRemoveServlet.java b/src/main/java/com/example/core/Canditatos/Controller/CandidatoRemoveServlet.java index 08f4c7e..0f572d7 100644 --- a/src/main/java/com/example/core/Canditatos/Controller/CandidatoRemoveServlet.java +++ b/src/main/java/com/example/core/Canditatos/Controller/CandidatoRemoveServlet.java @@ -1,26 +1,27 @@ package com.example.core.Canditatos.Controller; import com.example.core.Canditatos.Repository.CandidatoRepository; +import com.example.core.Utils.Utils; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.*; @WebServlet( value = "/candidato-remove") public class CandidatoRemoveServlet extends HttpServlet { CandidatoRepository candidatoRepository = new CandidatoRepository(); + Utils utils = new Utils(); // DELETE CANDIDATO @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - Long id = Long.valueOf(request.getParameter("id")); + Long id = utils.getId(request.getParameter("id")); System.out.println("Delete: "+ id); - if (Objects.isNull(id)) response.sendRedirect("/candidatos"); + if (utils.isZero(id)) response.sendRedirect("/candidatos"); candidatoRepository.remove(id); diff --git a/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java b/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java index b1f942a..ec061fc 100644 --- a/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java +++ b/src/main/java/com/example/core/Canditatos/Controller/CandidatosServlet.java @@ -43,7 +43,7 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) if (validaDuplicado(id, nome, numero)){ response.sendRedirect("candidatos/candidato-duplicado.html"); }else { - if (Objects.isNull(id)) { + if (utils.isZero(id)) { System.out.println("doPost: new candidato"); Candidato candidato = new Candidato(nome, Integer.valueOf(numero)); candidatoRepository.save(candidato); diff --git a/src/main/java/com/example/core/Utils/Utils.java b/src/main/java/com/example/core/Utils/Utils.java new file mode 100644 index 0000000..f519d25 --- /dev/null +++ b/src/main/java/com/example/core/Utils/Utils.java @@ -0,0 +1,20 @@ +package com.example.core.Utils; + +import java.util.Objects; + +public class Utils{ + private String NULL = "null"; + private Long ZERO = 0L; + + public Long getId(String value){ + return Objects.isNull(value) || NULL.equals(value) || value.isEmpty() ? 0L : Long.parseLong(value); + } + + public Long getZERO() { + return ZERO; + } + + public Boolean isZero(Long value) { + return ZERO.equals(value); + } +} From e62fc6bf667ee68efac1db9fcf9f6594fac33a52 Mon Sep 17 00:00:00 2001 From: AugustoSavi Date: Sat, 27 Nov 2021 23:25:03 -0300 Subject: [PATCH 07/10] convertendo ID de string para Long mesario --- .../core/Mesarios/Controller/MesarioEditServlet.java | 4 +++- .../Mesarios/Controller/MesarioRemoveServlet.java | 7 ++++--- .../core/Mesarios/Controller/MesariosServlet.java | 12 ++++++------ .../com/example/core/Mesarios/Model/Mesario.java | 11 +++++++++-- .../core/Mesarios/Repository/MesarioRepository.java | 4 ++-- 5 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/example/core/Mesarios/Controller/MesarioEditServlet.java b/src/main/java/com/example/core/Mesarios/Controller/MesarioEditServlet.java index b0f6997..a8d78e3 100644 --- a/src/main/java/com/example/core/Mesarios/Controller/MesarioEditServlet.java +++ b/src/main/java/com/example/core/Mesarios/Controller/MesarioEditServlet.java @@ -2,6 +2,7 @@ import com.example.core.Mesarios.Model.Mesario; import com.example.core.Mesarios.Repository.MesarioRepository; +import com.example.core.Utils.Utils; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; @@ -15,11 +16,12 @@ public class MesarioEditServlet extends HttpServlet { private MesarioRepository candidatoRepository = new MesarioRepository(); + private Utils utils = new Utils(); // EDIT CANDIDATO @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String id = String.valueOf(request.getParameter("id")); + Long id = utils.getId(request.getParameter("id")); Mesario mesario = candidatoRepository.findOne(id).orElse(new Mesario()); diff --git a/src/main/java/com/example/core/Mesarios/Controller/MesarioRemoveServlet.java b/src/main/java/com/example/core/Mesarios/Controller/MesarioRemoveServlet.java index 87dbdfe..70f86ab 100644 --- a/src/main/java/com/example/core/Mesarios/Controller/MesarioRemoveServlet.java +++ b/src/main/java/com/example/core/Mesarios/Controller/MesarioRemoveServlet.java @@ -1,6 +1,7 @@ package com.example.core.Mesarios.Controller; import com.example.core.Mesarios.Repository.MesarioRepository; +import com.example.core.Utils.Utils; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; @@ -8,20 +9,20 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.*; @WebServlet( value = "/mesario-remove") public class MesarioRemoveServlet extends HttpServlet { MesarioRepository mesarioRepository = new MesarioRepository(); + Utils utils = new Utils(); // DELETE MESARIO @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String id = String.valueOf(request.getParameter("id")); + Long id = utils.getId(request.getParameter("id")); System.out.println("Delete: "+ id); - if (Objects.isNull(id)) response.sendRedirect("/mesarios"); + if (utils.isZero(id)) response.sendRedirect("/mesarios"); mesarioRepository.remove(id); diff --git a/src/main/java/com/example/core/Mesarios/Controller/MesariosServlet.java b/src/main/java/com/example/core/Mesarios/Controller/MesariosServlet.java index bdac494..8d425e7 100644 --- a/src/main/java/com/example/core/Mesarios/Controller/MesariosServlet.java +++ b/src/main/java/com/example/core/Mesarios/Controller/MesariosServlet.java @@ -2,6 +2,7 @@ import com.example.core.Mesarios.Model.Mesario; import com.example.core.Mesarios.Repository.MesarioRepository; +import com.example.core.Utils.Utils; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; @@ -11,13 +12,12 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; -import java.util.Objects; -import java.util.UUID; @WebServlet(value = "/mesarios") public class MesariosServlet extends HttpServlet { private MesarioRepository mesarioRepository = new MesarioRepository(); + private Utils utils = new Utils(); // LISTAGEM MESARIOS @Override @@ -32,7 +32,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t // SALVAR MESARIO @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String id = request.getParameter("id"); + Long id = utils.getId(request.getParameter("id")); String nome = request.getParameter("nome"); String cpf = request.getParameter("cpf"); String numeroTelefone = request.getParameter("numeroTelefone"); @@ -40,9 +40,9 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) if (validaDuplicado(id,cpf)){ response.sendRedirect("mesarios/mesario-duplicado.html"); }else { - if (Objects.isNull(id) || id.length() == 0) { + if (utils.isZero(id)) { System.out.println("doPost: new mesario"); - Mesario candidato = new Mesario(UUID.randomUUID().toString(), nome, cpf, numeroTelefone); + Mesario candidato = new Mesario( nome, cpf, numeroTelefone); mesarioRepository.save(candidato); } else { System.out.println("doPost mesario: update: " + id); @@ -56,7 +56,7 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) } } - private boolean validaDuplicado(String id, String cpf){ + private boolean validaDuplicado(Long id, String cpf){ List mesarios = mesarioRepository.findAll(); for (Mesario mesario: mesarios){ if (mesario.getCpf().equals(cpf) && !mesario.getId().equals(id)){ diff --git a/src/main/java/com/example/core/Mesarios/Model/Mesario.java b/src/main/java/com/example/core/Mesarios/Model/Mesario.java index 89b369e..09155a0 100644 --- a/src/main/java/com/example/core/Mesarios/Model/Mesario.java +++ b/src/main/java/com/example/core/Mesarios/Model/Mesario.java @@ -4,9 +4,9 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; - import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.GeneratedValue; import javax.persistence.Id; @Getter @@ -17,11 +17,18 @@ public class Mesario { @Id - private String id; + @GeneratedValue + private Long id; @Column private String nome; @Column private String cpf; @Column private String numeroTelefone; + + public Mesario(String nome, String cpf, String numeroTelefone) { + this.nome = nome; + this.cpf = cpf; + this.numeroTelefone = numeroTelefone; + } } diff --git a/src/main/java/com/example/core/Mesarios/Repository/MesarioRepository.java b/src/main/java/com/example/core/Mesarios/Repository/MesarioRepository.java index b45dcf6..9336d7c 100644 --- a/src/main/java/com/example/core/Mesarios/Repository/MesarioRepository.java +++ b/src/main/java/com/example/core/Mesarios/Repository/MesarioRepository.java @@ -27,7 +27,7 @@ public void save(Mesario mesario) { } } - public void remove(String id) { + public void remove(Long id) { try { Mesario mesario = findOne(id).orElse(null); entityManager.getTransaction().begin(); @@ -39,7 +39,7 @@ public void remove(String id) { } } - public Optional findOne(String id){ + public Optional findOne(Long id){ Mesario mesario = new Mesario(); try { mesario = entityManager.find(Mesario.class, id); From 4943ae04ba464349e0ba9620dc4e14ea2efdc4b3 Mon Sep 17 00:00:00 2001 From: AugustoSavi Date: Sat, 27 Nov 2021 23:52:31 -0300 Subject: [PATCH 08/10] convertendo ID de string para Long voto --- .../core/Votos/Controller/VotoEditServlet.java | 4 +++- .../core/Votos/Controller/VotoRemoveServlet.java | 6 ++++-- .../example/core/Votos/Controller/VotoServlet.java | 13 +++++++------ .../java/com/example/core/Votos/Model/Voto.java | 12 +++++++----- .../core/Votos/Repository/VotoRepository.java | 4 ++-- 5 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/example/core/Votos/Controller/VotoEditServlet.java b/src/main/java/com/example/core/Votos/Controller/VotoEditServlet.java index dd05d36..ce164be 100644 --- a/src/main/java/com/example/core/Votos/Controller/VotoEditServlet.java +++ b/src/main/java/com/example/core/Votos/Controller/VotoEditServlet.java @@ -1,6 +1,7 @@ package com.example.core.Votos.Controller; import com.example.core.Canditatos.Model.Candidato; +import com.example.core.Utils.Utils; import com.example.core.Votos.Model.Voto; import com.example.core.Canditatos.Repository.CandidatoRepository; import com.example.core.Votos.Repository.VotoRepository; @@ -18,11 +19,12 @@ public class VotoEditServlet extends HttpServlet { private VotoRepository votoRepository = new VotoRepository(); private CandidatoRepository candidatoRepository = new CandidatoRepository(); + private Utils utils = new Utils(); // EDIT VOTO @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String id = String.valueOf(request.getParameter("id")); + Long id = utils.getId(request.getParameter("id")); List candidatos = candidatoRepository.findAll(); Voto voto = votoRepository.findOne(id).orElse(new Voto()); diff --git a/src/main/java/com/example/core/Votos/Controller/VotoRemoveServlet.java b/src/main/java/com/example/core/Votos/Controller/VotoRemoveServlet.java index 08c6e34..53e4f5e 100644 --- a/src/main/java/com/example/core/Votos/Controller/VotoRemoveServlet.java +++ b/src/main/java/com/example/core/Votos/Controller/VotoRemoveServlet.java @@ -1,5 +1,6 @@ package com.example.core.Votos.Controller; +import com.example.core.Utils.Utils; import com.example.core.Votos.Repository.VotoRepository; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; @@ -13,13 +14,14 @@ public class VotoRemoveServlet extends HttpServlet { private VotoRepository votoRepository = new VotoRepository(); + private Utils utils = new Utils(); // DELETE CANDIDATO @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String id = String.valueOf(request.getParameter("id")); + Long id = utils.getId(request.getParameter("id")); System.out.println("Delete: "+ id); - if (Objects.isNull(id)) response.sendRedirect("/votos"); + if (utils.isZero(id)) response.sendRedirect("/votos"); votoRepository.remove(id); response.sendRedirect(request.getContextPath() + "/votos"); } diff --git a/src/main/java/com/example/core/Votos/Controller/VotoServlet.java b/src/main/java/com/example/core/Votos/Controller/VotoServlet.java index 08573a9..d21104c 100644 --- a/src/main/java/com/example/core/Votos/Controller/VotoServlet.java +++ b/src/main/java/com/example/core/Votos/Controller/VotoServlet.java @@ -1,6 +1,7 @@ package com.example.core.Votos.Controller; import com.example.core.Canditatos.Model.Candidato; +import com.example.core.Utils.Utils; import com.example.core.Votos.Model.Voto; import com.example.core.Canditatos.Repository.CandidatoRepository; import com.example.core.Votos.Repository.VotoRepository; @@ -13,13 +14,13 @@ import java.io.IOException; import java.util.List; import java.util.Objects; -import java.util.UUID; @WebServlet( value = "/voto") public class VotoServlet extends HttpServlet { private CandidatoRepository candidatoRepository = new CandidatoRepository(); private VotoRepository votoRepository = new VotoRepository(); + private Utils utils = new Utils(); // PAGE VOTACAO @Override @@ -42,15 +43,15 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t // SALVAR VOTO @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String id = request.getParameter("id"); - String candidatoID = request.getParameter("candidato"); - if (candidatoID.isEmpty()) response.sendRedirect("candidatos"); + Long id = utils.getId(request.getParameter("id")); + Long candidatoID = utils.getId(request.getParameter("candidato")); + if (utils.isZero(candidatoID)) response.sendRedirect("candidatos"); try { Candidato _candidato = candidatoRepository.findOne(candidatoID).orElse(null); if (Objects.isNull(_candidato)) response.sendRedirect("candidatos"); - if (Objects.isNull(id) || id.isEmpty()) { + if (utils.isZero(id)) { System.out.println("doPost: new Voto"); - Voto voto = new Voto(UUID.randomUUID().toString(), _candidato); + Voto voto = new Voto(_candidato); votoRepository.save(voto); }else{ System.out.println("doPost: update: "+ id); diff --git a/src/main/java/com/example/core/Votos/Model/Voto.java b/src/main/java/com/example/core/Votos/Model/Voto.java index c938a7d..5e4462d 100644 --- a/src/main/java/com/example/core/Votos/Model/Voto.java +++ b/src/main/java/com/example/core/Votos/Model/Voto.java @@ -6,10 +6,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; +import javax.persistence.*; @Getter @Setter @@ -19,9 +16,14 @@ public class Voto { @Id - private String id; + @GeneratedValue + private Long id; @ManyToOne @JoinColumn(name = "candidato_id") private Candidato candidato; + + public Voto(Candidato candidato) { + this.candidato = candidato; + } } diff --git a/src/main/java/com/example/core/Votos/Repository/VotoRepository.java b/src/main/java/com/example/core/Votos/Repository/VotoRepository.java index ad37e15..80e705e 100644 --- a/src/main/java/com/example/core/Votos/Repository/VotoRepository.java +++ b/src/main/java/com/example/core/Votos/Repository/VotoRepository.java @@ -28,7 +28,7 @@ public void save(Voto voto) { } } - public void remove(String id) { + public void remove(Long id) { try { Voto voto = findOne(id).orElse(null); entityManager.getTransaction().begin(); @@ -40,7 +40,7 @@ public void remove(String id) { } } - public Optional findOne(String id){ + public Optional findOne(Long id){ Voto voto = new Voto(); try { voto = entityManager.find(Voto.class, id); From 0ae0a6796354149da5557d3662c53bc7b6d27ade Mon Sep 17 00:00:00 2001 From: AugustoSavi Date: Sun, 28 Nov 2021 00:09:15 -0300 Subject: [PATCH 09/10] ajuste readme --- .github/assets/1.png | Bin 16251 -> 35185 bytes .github/assets/10.png | Bin 0 -> 33457 bytes .github/assets/11.png | Bin 0 -> 35883 bytes .github/assets/9.png | Bin 66784 -> 66448 bytes .github/assets/tree.jpeg | Bin 47394 -> 0 bytes .github/assets/tree.png | Bin 0 -> 33848 bytes README.md | 10 +++++++++- 7 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .github/assets/10.png create mode 100644 .github/assets/11.png delete mode 100644 .github/assets/tree.jpeg create mode 100644 .github/assets/tree.png diff --git a/.github/assets/1.png b/.github/assets/1.png index d2e853b45263fbcbe03e1673fc2f7260b8099efa..90f7ba8ab033e8b023d5406ccad1c59d9907a3f2 100644 GIT binary patch literal 35185 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 diff --git a/.github/assets/10.png b/.github/assets/10.png new file mode 100644 index 0000000000000000000000000000000000000000..d09c8a713c0e7eda2163e6dbaad62a15b32b9bb1 GIT binary patch literal 33457 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 Y|9VyH-)5!Yat0vqboFyt=akR{0Dm;BuK)l5 literal 0 HcmV?d00001 diff --git a/.github/assets/11.png b/.github/assets/11.png new file mode 100644 index 0000000000000000000000000000000000000000..72c5dfa64accdc20e4ea21120dd46126b1b9b5bf GIT binary patch literal 35883 zcmeEucUV)~wyz?Hf(VEL3J8jVN)wSLCD_0Qs7Q!ZAqoo8L^=c!kxs0Lbj1xwLX%D? zN{dPtLJuWKub~A9ByXFcA7!_e2cgbMKx!9E&}hgLo%v-a)}VeB%4I6jY}@PrCMe*Jm-R zqjbo=2$o}Cj=d0SHs5U0vdrddPu8s8r!3s{+jlzwZ z-hQaM;R=^!&xEE0Aryu@HJm`B;RTmNEVJYvn~H(Tb1-7?qvwYEZZp}8F^-5qsW_h}@BNft!XR7{IlzZ}7 z--P41ATy(t0#x&gXhj3`@R`BF&XK|%_K}@V%Y#jq)^*mM{1>?wXStXAK1{Wof{lSz zG5F>ICqWY;{zjmd&9%H_Kl4jI85}#p4gpp6zrp!XF~)7#%U_X%wsL`{z53))wlV9A zH;|#wDq#x^Nu^h4o9fc8bc%pMejIClomRrMQ}fCyifO-?BL^+&h_)6=M*Eu`G^JQR z3wv0)J+mAbYql-S&2PJ}Wy?b^-Q9DSoE1d{5lx>O*dZ|jMPB5BN}Y_50FgqsTN)>XfFv)NM7MaSXSgTN7q^bw1f z-0APr-$KLs<2gz+YR>e-(8qeSNc*sl ztBAr4*9y!=FfTmf70#)yTpJ4%8If6Hr`Vcoxd5pBS_))lm3I^L)zo(3v7MylYl_T{ z4LYr9|1%NTgZR6#5Zq@mP2_a;P~42M;wgBMhruE*r`l&h4|53w!=CEz{Y%F!C zm7(*KM>9FVTmtZ1DPXQEB83fLF0me#8lT*BAXPT~$~oUF7-vP-t`@XRC4jG4Psq&? z5e%w^B@{WBtyv@Ava`bDe%!-@H1N(-(uO9PX4|$tQEzLSa*5`u}4d+l_jfe z+4#VR0`7Es?54ZSQT6L|8=P08Z3?k=1Zdo|?O=EKi1%MYuV0-)Z|d&PiD6D|-m>+x z`0vDb=G%36zqi%#&zDJusNVxqKLT+|q!`j^u~-&%?;W2RrxlrN>j+#%MuSAO*)M@W z`j3o^_*&-s-ms@nZY0~%M>Eg-V#+;!9%QRe$udklo%IwaE?$ErNhXg2_cRz<^(Wb9 z+_-5`Hm4*Vmb~-r%YKc2#c?e)f2&GclPmVjQSnHX$KrqNt|((Jh(^xozG=D#si1L8 zNgoJp{q}9Rw`vcBB)~o^vF+qX()@O7_4IS%y5a-~;6FF{yR*$(=1)hGBKNa3cPVGj zH{h=DLL+`K(?aRexA%xb54%}Ixp337$Oh(85Mtf(@gIDyU~bHEy5kGZlQx*rcxx~9 z`_S&a1~xugZnZyf}2dD}TaQam~T7(Qk@XX0A6d%hZqxN{0$AL(&${AuNqA@T;|@>uk=eLFWBpLI#+~ zSiij-lDu1qTJn~zOh;o9zmW#VXE8`WwA!JyGTdJ$su@i&w$OXk?&@O9)vF>5iAw` zIwlg=za@T#_6JtqC6bZ2-y2&xqI>4n^q2!_9brdrVPq*p+=VQo*t1K3xYtBm1L&dI z90bnX&|g|fbifeWbm>bl3hNKZnbLixVP|^q3`%k9fAY>h!qiK*;z$pRn>bsUX{27TrL=pm2VxkC^C2>!3W04{M?qB3l@LV?-Z zEt;7DZ%f!CHKgvZyke{z#P+^wv#?uz$hi$Su4zGlEx{iVy8jEnyca8_Z=pq9mj;Vk zak7tq9*kLgb8L4(3xA|V1LM#1cuGP{{a^w(Ok3@SJny!Dgwd}KiQ%KFM;l;*tpLF_ zL3Vb~L-WCbNW+)#qF77hKw8t^s0N9y7#VQ0q^V;Dn&BVGNzx&ZRvglFgcW!AUKq}qa7kR z={#_|60kSh_Rs>PUFGrake30$$rIAU#4Iwj6aPq_v@U{AFZ%SsZu}@9*ubZ#05+8} zEHfy@?a-qB590OTCOWkV8jj~%XBj*dju@G~`e`Lt|E^m5SJ|!+gY3AmC0JqJjkP72 zh1A!~`AXZ>2wzx^ZlnTPiyyTn!Q5x_mj+%1n;uc&b=Y=|Cbiy@s-GzP)$=IC?1wr7 z(}jJJy$Kr6d&(pyu&U`3L+RPw@ki(2==AGjz~(@M0v+(`ZBwy2%ca-->jh44CW16q z{KNJAr-3*RG;@|RYGVVLA6?s?i)t*2_5~y!!7q!YT!zIv9SH0Vk<nU9GlS&_lTtfc#(xrA2YLJ;<_&cI+X?GMOVTl80=@R<-L&Ud(d0}WYk|8$XTUr)M$U-cAhjm z^a;|9#rG7%u2%*?z)~~qU@bn#`oz#ukvHHjFJR7fEfjEesw+ymV1#g>XnR%f_5eNB zieiJ_s#|cJ1<^ASdP_>pUo#$3+3!bz5*l>m!{W*dv>`ht_;lVj5OjbafU_6&iG_Hh z4LBGsoM#V(Ds}K%!>fhvEUd?X>E^(_j@L?rv-)9(M;|ALv?PI~DUq3-_S$i_3<2U(#hu^v**_;ZqN)@Qt zgNYI)h=+%O$=`$IlMm)U{YXm!=FZCi$5v>BU?6SJ0}6D(TeojQZ{?~pm-QZL-GSc9 z|HL=e3b86F4lF^{)eMftcO8J35F&Uk46N-X%$;vv3Zd=3eGYiJucvz?z@(pmrR2cf zOz`uT)JpmUy=C0BeQ_LO)m1%Uo#IL|!M<%~2?4ewkaTXx`}1IJ7h&%F9OyX-MmTX0 z_{pD1_K-KZ2~0vDNxG?`j8E+9P3WzRDb}@z5UY+rs;6hx0UN|~KnyBv4{mKa2-fxi z=FWpT`xr37zl)n0Cyu~GUyJi2)vn}vUZ$i!-*Rei{F@=7fS=-w>O=`j+3{f%u?`5N zn3EPX;nLwV5WVAI(^|a?++gDb1ppnDwhlw&W>haC2;quW z*KmAw6E@F!knEBK;6m63BVcf6ySn#6yR!|KvpQN4d|GtU7$xK2^n^r-D-8wN5UdmJ z6%TQ4;I#4ve5o*7rj;o zQ@;yn#ICv0*MJn(^s_)E9W7Z_(RNA`w z>_Hs{Vh-GSAn8&=LK7VS&4YCfD=)(){i-F9guLt$yJx<7|lmPstJ`bhk{5* z2ja8`iMxG61`a4nfZVxlX)u9ZK?$JeN9BZHy_yVz(S-;TVvZJ~ujux4apFizhPU#8 z=3jy}U(s6=PSn2x&l=U=DG3|JK%gAgD{W;H$|oEt>C8Amn!20kI?dPSC?4s7_XXLQ zArL-b4Ns&;!9J7>q?F)4A_I%B8QArsmWmXFgSw2h`sz4pWhG(;m66#}XbkuU0uaDA z!LyfP4|)Q)**lM2;q2`~B-k8d6nSZJ$$5k%G*r=GysICvkk%gHO0<0-(R&FvSy-bb zJT)`m2;&kTh=djv9H6aDV}W_KkNN<=PS2`+->@-MfkjBxGHHmAuN&&^y@X>J)%jWv zufDWn(JYrCLwE-gx%?9^M-3n)9=HlbE$B>_4a|b`5DTho&;2xy%tx$Xq|FGb80v%_ z?*=zEIdbiW&srSLit*OZxMg8!5X}Cc5f)~d&(YYn3(Rv>23B^NTw6FcYjy=>Pg?h# zhLp!p0_LjHr>M)1v_fHHetzh_6vWl+L=X%dg7y}Q-+^6TJ5YEUuoJepAtHL5uo%7o zRKM76293q~0+!H=iPt8@wZzKcZ~Ddy6d+#x5uSVivFRS90ph39g-2Reu;I(8x@QT^ zcNK8j_{2L-m>ECdpT-qzeL?gFbaM}~RgL^h#eWZ&{M%r4oCxX#X$7btLDtz#MJ5~~ z26iJz~K8!9JjRXKEnq zy1xO@`u0Q?R^N*t!VM&SXi8h+6?3~A=XaA~4YS}n5NZzGN6`mDhqT0UU>0-^ z=D~%nBfy%=ylrNKIXVviw75546U5~(N5|tG)F6&-{yogqnt)lbbk-pN_zT!+@~Oq~ z!&dGvSo&eU5@@O04uRBg5AvmEa=XqWEl>*pj<&4T-Uj06AA$FUGKd8!n6LKFHu+b> zEU*e{t%L|kx($Tk_89?KH9o)`{bAF#2H2Jbf8$;<4RiF5cZjuVgA>J>e+C1_gvkZq2SG; zq2<1GiH&GH7A*ZEpT}fIA%&a35Il>edl=46lZ-4P`pUd3MzQ8)UV9jt%+W~3-5w`K z|0*o&py&p2g{9lmVG!e%x8GL9m(R!c*Txo;sqeTkpU**(_xS**l|(2fr}$N6nc*ZG?N~+9^;y)9PaD z!%R+po$lf*CVRhUL??3~n8*cg%lsJqrtZJ+;b56Dh(|uA_G@HO3aue)&y4v}07U6` zDJPUJbH!Zrc??9WNm2?&e z(=BLKoBShzWW0pg0BxaxUo}ubF!-N?%Bv)>Hbc?G8hBiJ@F0K5{46Zir+`A~ZiRN4 zXAGn!ihJQr25O_Yq;nt0C(vGPAV}dwvTz7t2r^CN67?orMB6PchUZWIsrZW|G$85r z-y}g?{h!aJXG_^7Hcciiiv&dVY^+6?vI`;Xz`{OA433;0$c|xv6tyaOMqKAy1;+Ps z(e)F3zz7cs;~zs}`$AF-FEM)s4;RzCP#|$q6g3p`Te{S?pYf&A@24LaV1K)-Dl}TB z#Xy9zOCa+tX}x>$8Z%Yrd__4)#3;~E;a9WnpYr#?{2v)uxsJ$cOIuH%!ALH_;L;Yu+3n5h_Z z<@FoP(xn|5Ged?AhyE$NuRwoNMm+N}tP&?!KM5n1nd<`1lvKp)@PKR%K>O{hVq6Gr zPTXE$QxiDieGdYm_tB;BveV%R9_NY40QtZKP$F+b+Gb-7SdmnqWLq6JDu4Ue|IhsE zG|E)z4=lj{J74?rK$HDiQ1l$FsrIXhQSEw5{zdcjd|t6;F34L?*LHevLXvqS1O#G- z+3&oCEH+%Y3bS;j|A=1fGC8Phe-R(2Ds9`{GV5z+qkhu$is_qJz9tPHw;fZ%h-d=h zt;}q_eUXH=+4}u()6!Gr%6cdnQY(G?Azdxh(&V`x)<3*p*E9;WBq8_VVMzNgq=AxO ze0It4f^%kZ1uHEpeMSCsJtRtZ?3oGwe;Sby1dtYE{Rp>?9oX|Y43CXSYpPRyrR|SY zG8D#uJ|nP6_7WLzwb@G#)V)+M8y$pP;uGLG$(%SvBiZ0Dh;k*&sj&%E+2Unq)7ifG zr=;HHC1*NU*wAyXh!#@=0b=ASNozCDYvK2}KILpsiyRt%bau{NpSs(F z>Nb5X>go zvI8Uf>HV~{0H2e6i=Qh|c|W^6EOlgUgW`k*%+(|r4(BFC2#(4`PHwsI$r*EtqT0Ta zvr-t&RDOXZz~ zL)3Yw2L-Z)i7?m+K(TEK?f$PI(ir3lGl3*=eur?iNde*$xs2c{S+o7PRPJdN{EUx! zN}{|%d+kN%KDHtB-TM(bZ}6cqihM)miS=Rf`Mw7Wd?dBw%MRK$t!u|ATWOseS}U4m zq`r5iJxUW*lb67zV`J74CiC}CV#`z$Zmt)f!G}*{YuXetBO>w>Bf?VRcLliNv1+q^ z#~$#_gt~H?JRb4Jl#+$9SA_QF?$e9BEUR&NLR`QE*~iCiZy(BVm8=weR@R6zO}RLrw9#qwzdBcUCDL*@G{gH`3WDl|yUV4y}sv z6YE6uz}x;{P95&hn33AMX{xH$y8Db#m0@-cA+OcgYb5RH#712yN+S`&pD!Sdb?qon zPhGAdNYoU?#tyaJvxvO5r1-q23!zs!5U%3f6EV9T=j{?fZ8l1&UNV`mntJ78wV0IB znfKs4{vJN;BR4+0OES-IB16vQUz0H)?0+sCr|kl<8r^b9$EN*URfB=m{08qEjdiCh zOveiEe&wugpN-Dwyic;3eiZ+rx#%c0Sr@Lt>JJJtA-#E|90zM(JCyIN+1prw@Q7UG z&XAsj5)D1Xd;J3r4nFiX#s~Ao>au~ zBMv_E?9T1aWw1v&X~~LsOl~n*xx*GCox&K-&+(l|29sQ7ji^)}GZrkCG9t!|FY&4w zRlll85bBX6i%ynnln%?bj}Xyo7ER#-5;9nuOcDN`S%fl!XrG_sRK-of`$%hk#zyH# zgokzMT11kt7W;{`8MAG;)IQ&bz00$O#Bs&xK8xVS+3u5BWhb;7Je0KiN>0thG zrXoVfIMD#Vf;ry`a+zmCo*?GDf$8!}71f=X&)VfvD(qsQTkk#5r&72q5NOwLs4SUK z?rt?j*PV+UsZ9$@jHtM|cB9^op0Qxx+IJe|JKFFRHMjbWI*_eq)nlK!+kCZAG%*CH zt&dHW>=kYD_4fGL?j!TmjGC)r*VP^Ed#0x*hVn%&B8*MZ#cJqNZnE2CrJ(onr>_wu zD%MTv2t84+f&M6qZA7Ne1ND`xT=eZk&GSJdpDPRsB5^mOGy901#uRxIz4CF6vloG9 znllc>I&cwjBKign?&HjWD2#k<0j{T~9Rt!=ogGuL#kJ1esz^?fOv*Q^eYUrU^1i)4GLfm%ASD;f zmxYbW_FD1Vow;${uM>@QO&N-yV;iPF-B6ZPa|#~vV0UqNj-CInq@5eg?kt4c-#KXP_F zMU{_Is_5!m`8ly>Wb8#aNdtwvHo_XX^W97s;w9bO3q$o9HVa-QQ$4Jge8r^HJ(?emusn6~e-$;F? zQy$jm>j{HVD8jRf=BNd*8 zqwaXU;8r8dgZ^Z`PaB5zG}d$-s1Sj(G0u1eh5sdxS{T+(!kO*_R2;0b9c+$G3~|Ib zc&T^q&T;P~G#zh1pk3#`pO&YGc+)h{istK&~A@SZ8?se1FN<}q~-Jr{x4}NNr3GZ#wK@ZozqaU2`f2vV97$bXAnQ8fe#zAGv5J$9L~1Fb6*k)Pr~cQ~rHw zt_MQQoB-t$>w#zX&%t7Df|S|&2wuCo@pY@!6sbwug^;~ZO%ywBQy-pcrx%(lD=2!_ zg)7JFTUE|SYpdRTTk~+W_xeHor4zR-mrBLy+V?GZ4Vt2bgzWSqa~m~OpYFtmban|w zY>}*;x|q=)oWAkMT^V0a78V-S3;Bp}2t^b1!@r3?J!d}^TKm*Ae7*a;{MuK|9G7XC zoV#{r;ew}**gnwBxid^Da;%d?GYn|8_nIvBCue#nZN(wn(9uw+A|A41+@We^z8|3M54l5Rx_T zV;uLCdm8pAfwS0 z^=C?LXO5JWmYHvy$CtPwyR~du|IKc4c8uT5gozrubxUFGGy0mXE}&tm#fBTM{#){EYmr$0@n!nJRkSs`H+W7YdsP^1eZH-7;x4*DObT z@3($NxP#!{(qEdMJ+3T7c`n3X8*f*jjn0(V%B7(y8|Ue2dXn--95i>#zlkcI+@zEPNfKkqAQ?hJlpTIZpAx@o^>ez40LL zBEYcS1|=8JSW{;dfNU79dwxV%fdV5`ECg*3LnxTN1j^c#w!c|7jlw+qKuY^Bzzk>(-#t*-=sG<2$F7B9Xkk||z+SJ{YQml4 zV{j8`&;HY*`j51p!bYrW$Z-<92NfA(*2D`=LlHgfD%rpvX|Le9ZI^vy!GgEF0)1zh ziX4478|Q$_je$DNL_V=+pzi?MaC0j?P>&I+qNXr{LAeq&ESu}*#&m^zl&YJ z_n@svxA8Fg$fxGHzb}%vOZfX zZg4UcaKCC-BoV^}(0%e8ts%kg3WC&4XsAiSN`8>-(|%;w?fDbXmtxKDK-K0rw5~^5 zM4%_%U{Qv85r639zqH%aY=QEmW1A@OxPst8@NgDXnA*%D0=|)e?ZdW*K&xVQK;!?5 z79B|jiMY1u8@Q~L4ip!+wjvE9@9#TBIk}~ z-2J`EUjw=iHP1X@VC*ZgKNtGnTU3-EHa)u65p;K)cOv21{Ws8leCaNMgfXTX(ooCb zcTfvA^A?bB1Q>vOvINGMPRT(UQ^~Bi#Y``yAx6^Du{h8>gJk;8!gpN`jI#FK5o4m# zpB%Y7Ta_v{l0X6CN&|ya4@IiQz-|Uo8oVKbkUp0f-Sj(kI_aMaRLF(AOM4z>@# zcNp(}DFFB36k%tf*p!tI@CFbLD{Dei3-@a=?7-hd{A%O>-Cl(3fY{&d#s7MH5sJb7 z)1GyP6RJV6R-ALBcG|9>HqwlD%S2NMp}juzx$oMI*{SI+UT*Ufhs$GQd9l(PaO}A> zQ}ca0&k-CH|3tZdHigd*9Ro=b@>PEj)K2*P4u~ybFVZCK+Pg)2p zokj4WQ|g238ijY|mxa=?!wsCZwLcH@Cd;kZ#<`tgejVOQ{Ak1Q+#x-`5oD!ZvbGnL zg`E4}NYuRV4M&wtNLAVzZ7xgDdJ57m3MS)g^M%f1kVpJ*0l3E&%We+n0dhKS;&>&5 zz(V;+nVB9W-%_$(h(Qo{$Y#R6WXrmRoSbC}s?fvgnx*TkkO`Wxa+LZtTa8lOqZhL8 zEWpS5hr=;vt#+RqWH12kMbUt0p9@qMilDpmvrA|h@i}XgsWo>dC#>cv^dZ8~RyS{_ zzSSWG=hd-sYUL{(G`apAxja%CgaApPJP5!M#x@-#kh2^ZU;(J)h*G$Wm~INfaAQ=2 zfS(|rrk~xE`a-71NbR-w{yQabEmk8Z$5IE>VoCF9k9ZR!E?Z;78}}KTM8}*#iO6dp zXEE-gD@0zvM{2}k?ro(=u{Ukx{a{XU&fQfP>Y1vnRJ7xp2gr@Nh?^rjXJ7n%@0rt_M9G#A#*eNFAk<+Ag|g!fF$7(XPYil9l$Pf`FgLQ#%Kq%<~RMC(&xTvh#Hyx zkZU$s!QE5^tNGyWGXtjdA;X+|Hom6w`gQ2`<``c~*P$^SdiiaD@xkfO2b?Fi2lTm+ z3pUXgx7!f!@I5`R>tKR6`y{P2^_AGxL==$V!X_slK=yAqsdtP{c{q`$1aG#c@@OwK zor>?jDw=BMg$d6j^JDvRq?JesqS(xmV|wa%_fn_UCn_6^;G8$+!l|T=a}LDzukmvc zE0pbu&nwj2r^{&7VfkmRZZ%}yMS1G?(oC!Gg&7fPwIuC-)@wsKQzNiGP2{&~rzHF= zQTLT~iLFGfFXF8L+O~%DWc}5xy{tPwLTb7H zhyMZ$J#o4K0=~1~r>h|2nY0Ud7l0ufjMde+Dv+D#BPOdp0@C=9l`z1@_XV2>F1|h+ z;g`|&8;?7)?_2pSF4+LsefjaF&sdhboVaO=H$6_e;Uylv>sV2SiS)kKPmv>vtyU|0 zBB;OZVG4J|cPhtpU}QkiQSKmP_@#yj72}%%9SCZsN#=dlH++8gj$ z)hqNXAZPkhz6RX>pWFS;(1C6{u;15UIlG1(NjJ&``BM`wG9Yw_7z<0vmQdU^Y0TA92{$cowCBLT%i2FzG$%{Gj({ zp_r0PY|(7XrsoxXf7C^H^SZsH9!BqB-L{wn?bz~wO7U)3!mj{J*6EMh2|X-=gF%qF z*eAGi2p7bnpDO~i7^G9yN%_wS*7o?g?zOQ;l?xUE z!~qlKn)o4csA~5HZ%5nI;WlL8J~Qtz(^JJ!LH29i!inw^(LYy}x%nDmnG%hlNy$IB zH5>d#RbjFqUsKXeYe%rzb0J@Y`x}fEO4Wo=6LAThS}R^P8*E<~|H*OBs!d*Ig8V^Q zyY&Zn%=)|vIM$UQ>SP2!LM>3T9W%B$Uj?j$=g;WvqI|f*P+RU zL9UDj97hw%*AF$FqlSzX4Lj=B=ZPw_JEJ=oNm^*<3h|^h1`pAMYGXs{DZHyQlSDUuW@^2C=uxLS{)^tmVMniN$nw|~`D zn^UmnuIcb^0-AdQE?m6*w(t?6)9DD{-`RIl3b0nc2U;yqWy{DbK=8LVl`FL?k!qTA z5+mfRCX!`i-scP!dz9Ssk+$%{>|k_N3c4Qo*3sWRDXV0E`4vh&k}^Xet`T35<# z?)bPrw12p$`|;Gir#mf-&Y>EZNQP(};&6G7%8^>#7{TPp$%7AcTRKl3kzKDHMPJP# z=Zw!3=M;>5P&vT7Pa3hOj*)5APeIwXn^-QaHX0eWfLz8p8&vE|<;n<)>Ey*Z8Vl;X zQ6ot{sEBwhaZ$m#wpCHG=B7Y6_FeH)RN2qL&KnBy;CP!{tw>Aidkc2375?8riM`VH zjzm)`lupCJ1$W>lz!l)AL!nM5sD$(N6f5p8MLVl6*0_tVY2((-D{hk-npaIfJ!toyp%ba?l+!!BAh6vf$jM*dN@AZ3t?A>f!XIH_8S- z(=D<==ML`v5stq5yypz^*}``1Wp@U-=Cv{zh#k9fkrCv74}l z;zRO4y8Q{9837>b7~oz-dw0)~$-+5j8};QLD3w_rG%Z(umFW<$88K2h%hgFS9w z0ht;$cYcH9vRN1YZDhzKx{=fpj#km(jUw?rF0e;Zd3S0XNsFw;A!tztC zzqvv~{MU#7dq_zAAuQ(Kyi7`k5KKat)dxOSb41FPAkyOQ)JedeM_SKW97o)Um%;g% zr~7HtgZgVSr;C-P4{j(;7 zg*3t}^gOP*rh{qw15CM+6`!Te=t#0ppKy%Vnk8#2P^cfBS%bMw0 zK%QhwyiU_t4}f50^iG=657B^s%8BU%J~M`J4C0?3hx8 zoP&@hxBw2e#Du%Rm@J+n$)Lbso1iFa6pNt+0kGMqpGi7gu)Jyxog5Ni*dWO|k-?aa zbhW?Xl)x^s{u5#MH^TG(77q4rIOX4P%D;~*{Et1ZpwXt#UFxFq(-s@)ulTs~T>;IL z^#wQ|v*vmHp29s1ICOIXVMNo-l3h^RdFTeT6z=i64r@Vz7={5=St=paQ*v2`kqqiW zUmq7c(_=s&Y*hVd&4rSwm}>=aGc^|CLs|9zhQi$2k-Y)olq+qoTmQOnBxw}5)&ynO z^RQ=&{*_|+-n+6kB?I#NL&!#9e#PlVmsu0Fp?4qAl#<>!kD0+-^sTJLb@qiYW!+$B z_lmah#pShuZ_Yif2oQd&To{|OMv+Tz-M?bKOMdNfR_#5>MXafVQ=HdGV(RyzUWDRL zB~!j+S&Wjlthq?PkR(2;r)Mb)#LKMFU7_eA!RWjp!XwOK=- zh@z1dYMG8F9g7Z^dlJ_=dyB+l+@>QLTOuR*BpZS+KP}(QE#s%Iq_lqOf#Ry)a>mL` zp{7uPcLiOP(xcqFYr(;IkG`W_WX$QaR`q#~HR~=2zWg$;n!d8)yB_x)q>UM-rOk7b zce}}miKjlQGhS2kDmnVIUjYWAus>U6e^;|$13(N-rGb>~wLndD`_($ zwDe%dF9e6_{4{PT>}=0Q)Ji~xFXGvQcoPOXMp-6elE0VFu28Y2Z?mhs$Ji>BeAwb> zoXNt|+3Ge`+C*3PW9)>@kCW^k%-M6bjXeOjb)G@RIRdi}5_T+KO^oYmp z?yu1#r|YIF_C7y_D2=@>&h5pL#Lp>`R%?3|(Dre=N6n6FKCNx{c=#>7^E$}*>EB8P z4SH5{ud8uFKv1~izy5ShW%|bg`r&ke$71B2oR7=v9uG-|&J@cs@nufj>Iz}_=|%ZF z7Y&5{X2Mlwp9IU)2@nIg62m8rG&%W1X5Em?4G?4N~XN-1wXZ^JL}(@{-Pca5AQpe!L7 zYD~viyu71U_&ZKBVhI$G4RmTgn;M*)66P88U0TSX-{f6rAAVns(W-8=87fyx2%cUt zs-7^kxaYb1>?Fpnwh4e|+s^-tdGA(z-r38c#k3uEM{{P2v3^VEt9s9~2>#%UBe z=m`5Yd`GF~Ps?)$jY*1&zWhI)TPBDi{T^EDp6pdWEYUCO+*QR*Tx2d2Xub>SRx_vu z_7a0x%~K9^TF=m8j3zHsw`>#=SQwh<%%-fLx#A7sD~~%rP(OM1^!*YWs~w#i*Lzn3 zTPXx*XS}(qr*I;-E%+v2R5!S*crW#~=BH`j3?5`f*E+*7<+Vk}hu5yo8+_c=fyBJt zvS_=a!xHh%`ae@LB3%{Ku(sf=@<_f#*foU&?DN9RNPLYkYMY;;BHu(E)Zp)k&cGKiHV61g_Y7Sxi74-RBT4*xHx8Qpt|#6OLUPe&Ee}55)~1gnzfHtV1qt7^xUtke6FWr!CfG; z+~b^SL9Sv9V>!|4yG27peCz%Q#W&?br!7j+*W=39Us4172pW3RG~&)GTg@MR|Ex3% zZt20)xwD@xOy-@E#ygbSKJ;-W+fWMpidFUOC;f|;s7n=bd*$@(Bl79woEVdZd_lLG zCJx?*%iHY}+jnzg?wLxbz2y^n6E7m_yU|sdylI&m7kGqj#-iXZk6V9B{R#tZ=4x znA%$yR5lw)im#Ik=5N zTaJ58yO55n2fIzr{`oKN)2{`9rJ*- z{>tsa$i8?Xj9>>j=l$Fi*^EFZKHAJnaN`QSTq1}xnR2gDHc4C}IC`^n{N{Xrl3d!g z(bdw(4NBXfNffHO03Ua}3V51-Vn!1_alaG5fQ-FR4LUWtE)vzAb`z8*{)n)KEq!I^ zr9d|HkfYxT>GBH8YjIwvNk?4YY^;&1Fp^j+(9Sihj%TbTTK%vY)t-5*X2p0?Lesm_ z@JPk&t7P(Wycv5Lg!7GZ++?`Yvc(;rQ0Q=>p5U%6T+zRyqm3(Mh`oY&ZIivbZbHf2 zNRbmWm3xQEsYry|twp^axPt&SG^UTPK|e_$XQ@me9MKppK` zAv)|)JHY@kXmmaefDI>lm)Y<7=A9nQVLLk;VkrQCz&(t@S;r!Yr)H)3by${8noo~g z6RN?lDpxW~T}IY(M8TPE01gNwS-sJ+$I*`oXdX$Ox^*HyL6+vU6=RJ8RM-b+@vxT?ZCnHHfLPoo# z(3Rnm2cPPO%Uu!VPsE4Z?Q7wYUp8@W0sT+x?RembDoYxp_v&}V?Y4npfRTMxOD}@Z z1`X9kcBIlRnAZ1=mA0i_JO~xPOFo6pSHojZ%4>HN`sl3Hrkr*jR5q?i_SO7=akIQH zigB(_R1??RI47&r7{ANFuXi^wGEwlQ&W@1o&OH%a#e%E(VOERJeNO@T2}~#(jEQ!l zrvJn5M*zP+{7=8nI=V9V>_(@fW7^fhq z4JycfDKf`j&e8G!&@k9v@u>hnB&ugxhd8H9YA676&67 z5;$=({l8(ZOQ)|Q)oF8G^zx%O7NYhzlOK!Lw%RvUp{6`WN&&0Gmok!9AmgVO;+8VW-tgu>dKesdvr z-82~=$u(W>-hGA4m9EYoox6(}TdbO!4XoN_7ATA8ox;ck(VHG4W4d)#RRt-XCbVyY zs+QXI39H2_1u08=b84QDtlIm|S}rAxwr3wqvB+0ZQc}uSKkM53Owi>^p%sHI@u+%% zCB56ks!s&RL2o$E6ufFAu!WrqTW4H$isM`0Z|;k_rF{;O4R!prrH3bn0!50`zBM)F z;n3}G&+c63%002@@*yJ%zGk6L%`y`{bNd>2Y^jg4xscosJOkOO*$!OL&l^75fb4&Q zFP!O$en@~WwNL`i{C)xfx^Pd-0PdB1^e+VWYwUvI%^~|Pguy3q_X9KH{i?MFs{e|G z!0%NT=SloM+TVQppCcjv28%x7I-&%%3J+~7ecK}xG;!WM{vFrPUVHKQ!d0=utUvb> z<}aOW{%|x+?C_%-Ti8P8Wz+JH7&o`?syX=Xm5xdGnL@If!iZmLu9{kXuNpm3LrtM# zq4=9Mtxs*Ve$^Kv8G})EVKmJ8Ky4Uc9a$cOo}{4wsd-e(N?dyBL1F}v0V**INbfqCb#_U>A&vs%B zSzlcq46+|u?R`7qH?*vpS7UD9!8(i4OUN=nwk#c^_ccv%|@JbZ;OznmD# z%!eBfp-x#jINOBrN_li8aBewWcZ|YU)YYU zn-R!`p>h)(+mJ?u?!PX%P~d3Wk8k|?`z05*-aooUs)d%mndK!LE6xqRrs9JD4?e{) zhXwZ9Nsn&ji)DU<{=W4actwi*`^9KCSy^$pM}C2Cd7`DoQ28)c;L+#Xo4=&T!-(5) z@cy_7UJI%{9XTR~k_oo6h5km}+x%tXQsFOP_bq<#ApOT>84{e^kkc@lTkQBvt!&$0 z*ZX*F{$jhvF9jcI-~h|vq{KkCV6h^NwX#coOy`2@mA3IjpV!Jh751V7Pztv48_Q!u zwOJWoF5(vZI+ zfDKpI%w`Ag48T$0Wzk0X5NHQ?;v21A; zeNQJz+4Y8qJ2&-kuG^3%IeTH`_nvLrkWzO)!IwJ`z~mEW&2!~u(tNk1K{u0e?!KGJ zRx}bp;4gX%u#VZMD&Fmdoo?!*TZ%RohOoMcvnaCTQcJB9%V5pnsHj@ZoG@LJA*wVaRL1Kk%`0@TEnX0ZfmM&6@a zt}P;SjQ?Lpx_QsPk1TFZZ_`sBvgsJ=Bf445V(HG)t{Waq8*l2nNjf{JJt7$4bx$(E z`-k?T!#L5gEJMg*N@P8T9=G3lmCybBIfVIgiNm@s?elEnYH6^$`dy<%+S1Uvvis0k z@d~@Xu@4r(Me{~m(Q?Jv0$B_<$H@&x4Oxn)dGUU3W0SDhteKkeHxGx}<(G62sub7M zOrkILW>~WO`6+S-R>&c|XdYL#(kiz|iDj2_`OVv!T6X}L=}66ACuew6dci(d$=E{e zcOKL!VBLP?S3gEx9atU`*IfRzq+(C&?wp`I5C68ILYLBgy`|RccC&?R)JXx?Av@pk2@Z$W-^@PUa=mAQ zhT)r9w`2i@raoI?UvUg5hta#s?L|{8SP$!Jo&BmRr`M?1rJ<(s)(Ensw)$Y3p3kZ{ zZ=$eT#Hk&cv8_ouvlG>Q%;}o9v*Wd6U)rZ1lX?zPespBk47p_x`?6>hfqw6SpX0id zyrSMq1MbSEEm)#y!QKW>Qja)=Vw6#%5NQ@xMn7eedM#_iR4!p{e5QRi$fD|2K0N@l z{)L@DC8O7cfe6S zX&3N1$O^ohD%<|GpTSs!+Z=T@wt|GE`IHOI7N>|JVzPVLOSgfge5{j}QrgOC}s%nKXGwL}ma zB?j5urtEY63mug0M6Sw49n&8Xvk|7e$M>~GCcNEwOU&sR zaLrF)pRx$3T$Di$@b0?%_?u1qUgtjXj-fWbAnu$AqN~LO(Ey>kO_r7*Om!T!uP##( zZ}f9f)@++5-W^*t5};A`bZ}*E={$mmWm5?_fYOj_7x3DI&2@--;VDVSI@s;9I&2hs%0|DZ)E2Jfr>CXI&W*0$I&9%3@ zZ`2<+-TC|>D>iGQ2Cb>S&C+H&GU)VlnHq0{>!w7N453+%=7AW0Nwd7Y{bSsH!>{FL zsyz{8bsyUwMhIEvEkxsL_rUInyj%I6(WHeZ={jx-hVu@ONtgCz0Aw@prFy{snAPop zeCZkx$)zRJ8XfIhCk5^Gu;xw%a(x(#WaB9ZtxezywbHX(egY# zIhA|j%YDsQ$G&7y?rw6IUxSvxc;Cx|jPb*h&K3ECN4pd8ezP6k)FPVe5Pc&+)O@Kk zOljy{g_6o1p_YCQM+=V#yG@bxJJUzaz~qa@Fu3pP8^EGW3@!?=$Plm&cc1W{JNNSp zyUzOX$4Tcd!?L2~s9-fLu=(otGL0p)we}Fw2%0&&@fKscp(f-^)2lu#uuS3V-|zFY zVs#>Zm-Fg^@_SX!Q$EpccaPI&!n~;=YTTuoO5){=vd$91(&x#oE{e0X_sXtAFWr4j z{Z?*eNaShEVhPmZ88aeEoU++nMRW4v1MK|`wQ*n2Jk|R zd;y#FrGZoa0eX3TOOJ4aXVYUk_Nz2>ht$bU6ICt78RxRSd=c-rM`n3A@Nu|PN~FA~ zZFM`8nKyLVtUh zGFe@Pd}?2ux#vAZBjfuQ(ILljA#?rXr8@_xP1vG=S6?(TQZ4fK>SlNQ#QQo_Cm3wy z{_aKYAyE5zcEq_2Yn;)3t& zFT?kJ`!-}ObL3@|Q_`W;Rcem6B@(B~jmf&Sq^eE`np`C1=* zqwuy@d_4H5Tt)aYa_JE8%f)?`Q2LQ}1L)knq1W(af6k3Sda?!HhYP?JA6)uh?Ol6R zlUEWCm{f>Ga(F0ZO^L1)<+XSOr2!?1azq6p1PDPe78MQhPzYKPBv?pm6{$~_m?g?f zNW>@vEDs5SV6E5{_^=J4A_p{qfDc|GlD+rF?Ge^L``?CtfOGTRx!=s(x$~RJovB@k zCS76!5L09nDjd%=0VAiJZ^4_Y^kT3}TAS<;u~xvUwn`=sJ`Nz*Z19W5{s}1LdR0;^ zTpFlP45;4kxQ7TVhMueOw=FksM0ihtyBuIqTb^G29y+{1Rl}gG#J)iU1bl3cBo$l{l0_zBN$J&&<}(PjKw zCou@rUJXG{=7J};`2`~PI|8oYp+;&|RL5PuLXEzc;QCD8=fXt#`Pjx^4uq-$1Zmjc zZ*prELM}+Y2mD)a`JtXxxTudU+Y)sPTY04BZ@E8LSyfg>I-i1)+-0_V_0*9jPwFd0 zq~t0k=kHDuHq<&5h(Orn!28oOb%WKXJ6n8*xKFhi~#=*aO~|;6|xWu zKLW;TV64^Z;|McC*Y45#K;&+$`;LvRfTs^^-|^{>{8v9HPQbEp9akTPn1FH(uw!5R zS+ulSdNx7o4`uEFI8{8pzX3|^4)AMQy0&33EP>1jA`=hZC!FFAwc3qX+W&f}gh$JnU!F}`Hp4P~L=Qk$|- zp-@bDGzAiap4}$l|kmO?IN&UJTxLDOK5C z0wUr6`*Ai)syO4}E~Hu(5`*miu(*rdfPdl>i9rIn?5(9y2;Vg6Ahx+N9KD755yaVN&YnTbearh8sR@R1Mq@N9FgwCU}801c>v-B*dWj(Qx$TP$__i*j%&# zTYN@0=gru7U8S4s(B!M;=B6eubFX9C_(6}pKp@!H8C~gf_#ieuOXAglb=Um>Uj+2X z0%E_{6$o!ef%JuiQGmc|?yQdPCwaya%UU8kIeC?@Yd0QsWTJ^S@lLms>x#;^u_F6lZ3uWHrmmwhHaJ;++smmTr!Mc&EM`F_37@1PgR zLFvk#(azXhWx2{}YqSV24vd+<9=O}0jUZ%yHaZw)`&Fg@T6YbWVtof%e!=oGskVur ziRy?|Hfl8m`jhbbOc%iJX^-|blS6F+`Br1Oz2&NdB2^=&iF^rUISoh_z>`;?zD)FV zxqZE=JdRtP>sM9AHK0!XTVk691F69Gw{x=GpPB1OPVsPX7rHRaC63YWv}Nsyz;~Kc zp97&K{@f-gR>^*6SE2P*a_xDpYl=IYd?j37wKb`p17Ga4e7yLRNE_Op_65dFLft%iX;y4Ezb17MOj?WoC+h9E<(y^jsHrx zgq-}c{RI$b0rksUnS9whO+;B+h~fMnwIT%(B5`!@anusvtcitj5WoBRLD#A56y_Lqw!?3f4&&JN7H{WUc z`(V3jw<}dyioK$9Cr28FK+>Rt+mGm<0;+wgst+Ns0+Z~--&9Tp!o(*k-}?T8SyTsx zd4(gED763!%Ac2=_)S8QonD5Xs$9fn$!(cFwL&xWE#&}!6Dv@Ti(xJ8@{|-3ByR5y zJ2Sf+-OVLIGRzF-E7OU4$F@v*{%pc#$*B|Z7gcLR)h&o+Jg^ADvm{vCjO6-Szw82w zZ0uk8F2$Ka){Ny3ojiQ|F|2rp=ghY-4l(ZCnEHy%Wr?VJ?kl=5)Q0Fo+z0ZFWMS&s z9>;ZN3WtZfhkI=Ng>=~n5Fw2nf>&gSPp7r-u?gp24Lg@}MVrMs15#Ay=BbvV`<^W;M$T$wpOA!Lt5w^)3 z*{L#v0kdP78Im5o{`?{Skn)VmenMNW{ztRy#6#Tb>R`c0rY2=LvPToXBl!ccU9c3u zrJqiXu131X(COdFHD+Ep*2TcP3MaofmqSeDEgJ%8ZIILN-e1PZz$feRkf#nMQ8f9rI zXXO_kowjB8V25tQrBHdEhQURIlFs)vR5}4g6=XmsIH6bL07+8zVkf`ds{E2w=nNDu zlD2ubc^YjCE{N&Z?sR?tO?t@Hr3H=e!S6Ekj{Mfgl9Z07Sf@Y9ywsKytK zy&1%1Ho-w0FB<<{Q3a~g1Hw4;Kf^eMz^ti_AaP2Zfqq(tr~I`){Ez9aw??(GqU91& zTs^3`qNGi5>3|Db^+2B+$rEh@`C zeF(>E1#`FF>eE&en*QK4m76}4N&`7y&YtaWAQO?mKBAZfLKZot1w>eB8p`scA({we z$Uu{wxA47Yj&1-E6Q76v1Z2NvJV*zrVixQ7$?3CcXUGQuo5HB#v}uGsOuhslaR-OJ zDKnOVMq2^%+hmM2pPKXI?K*R*N??YRtP;wn<^+{Vf;P<&z+B|aX?Y2N)d>!PXq(TR zQzt&1_@*n&|MTwi&<~%);pWJ^*R5gbcB0OZPPdjiL#jImXPosqH%8~i%<#B$UZ~Cs qouLvs5TV0>Gf<}v1OCMj{-x%z<-&WK2~80W{CKbTU01r6o%SEKUdk>2 literal 0 HcmV?d00001 diff --git a/.github/assets/9.png b/.github/assets/9.png index c0f39cb334fce40952402fb2ea60c842020c856c..7d592cb8e1c650a0a7562756b37cc0fe6771e2fb 100644 GIT binary patch literal 66448 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 I=akR{00}$&od5s; literal 66784 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

Kd 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 Dti)8n diff --git a/.github/assets/tree.jpeg b/.github/assets/tree.jpeg deleted file mode 100644 index b07148d239fc7aed9e9475f0969f4a24f2a614e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47394 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
e2^bxSs=^lf-0izxtFv5|<N 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 - +

## Telas do projeto @@ -30,8 +30,16 @@
+ +
+

Mesários

+
+ + +
+

Candidatos

From cb0ac859ba6b195b995a77c45e6f5ba8deff12d1 Mon Sep 17 00:00:00 2001 From: Augusto Savi <32443720+AugustoSavi@users.noreply.github.com> Date: Sun, 28 Nov 2021 23:16:05 -0300 Subject: [PATCH 10/10] update Readme.md --- README.md | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 0da0f27..b455312 100644 --- a/README.md +++ b/README.md @@ -3,19 +3,9 @@ ## Requisitos de aceitação -- [X] Ao menos duas classes de modelo (com seus cadastros, páginas para editar e - remover); -- [X] Controller´s para manipular as requisições e armazenar os objetos na sessão - ou cookie a escolha sobre qual utilizar, fica a cargo do aluno/equipe; -- [X] Um servlet que exiba (em HTML) todos os objetos armazenados em memória - (relatório); -- [X] O site/sistema deve permitir o cadastro e listagem de múltiplos elementos (do - item 1) em memória (utilizando sessão ou cookies); -- [X] Os objetos devem possuir páginas separadas de cadastro; -- [X] Uma página (servlet) que exiba a quantidade de cada um dos itens - armazenados na memória (pode ser a mesma página do requisito 3). -- [X] Não devem ser utilizadas TAG´s JSP, arquivos - JSP devem ser utilizados como HTML) +- [X] Ao menos 3 cadastros completos (Listagem/Relatório, Cadastro, Edição, Remoção); +- [X] Deve-se utilizar banco de dados para a persistência dos dados, a escolha de qual banco, fica com a equipe, lembrando apenas que a mesma deve conhecer o banco utilizado, para responder eventuais questionamentos. +- [X] utilizar o padrão MVC ## Árvore do projeto