kklevi

Untitled

Jan 5th, 2022 (edited)
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.67 KB | None | 0 0
  1. package com.example.alpotzh.controller;
  2.  
  3. import com.example.alpotzh.model.Bejglibolt;
  4. import com.example.alpotzh.model.Megrendeles;
  5. import jakarta.servlet.*;
  6. import jakarta.servlet.http.*;
  7. import jakarta.servlet.annotation.*;
  8.  
  9. import java.io.IOException;
  10.  
  11. import static java.lang.Integer.parseInt;
  12.  
  13. @WebServlet(name = "RendelesAdatokServlet", value = "/RendelesAdatokServlet")
  14. public class RendelesAdatokServlet extends HttpServlet {
  15.     @Override
  16.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  17.         int inputId = parseInt(request.getParameter("id"));
  18.         Megrendeles megrendeles = Bejglibolt.getInstance().findRendelesId(inputId);
  19.         if(megrendeles!=null){
  20.             request.setAttribute("megrendeles",megrendeles);
  21.             request.getRequestDispatcher("index.jsp").forward(request,response);
  22.         } else {
  23.             request.setAttribute("message", "Megrendelés nem található");
  24.             request.getRequestDispatcher("index.jsp").forward(request,response);
  25.         }
  26.  
  27.     }
  28.  
  29.     @Override
  30.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  31.  
  32.     }
  33. }
  34.  
  35. package com.example.alpotzh.controller;
  36.  
  37. import com.example.alpotzh.model.Bejgli;
  38. import com.example.alpotzh.model.BejgliTipus;
  39. import com.example.alpotzh.model.Bejglibolt;
  40. import com.example.alpotzh.model.Megrendeles;
  41. import jakarta.servlet.*;
  42. import jakarta.servlet.http.*;
  43. import jakarta.servlet.annotation.*;
  44.  
  45. import java.io.IOException;
  46.  
  47. import static java.lang.Integer.parseInt;
  48.  
  49. @WebServlet(name = "RendelesServlet", value = "/RendelesServlet")
  50. public class RendelesServlet extends HttpServlet {
  51.     @Override
  52.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  53.         BejgliTipus tipus = BejgliTipus.valueOf(request.getParameter("tipus"));
  54.         Bejglibolt bolt = Bejglibolt.getInstance();
  55.         int mennyiseg = parseInt(request.getParameter("db"));
  56.         boolean rumos = request.getParameter("rumos")!=null;
  57.         boolean vegan = request.getParameter("vegan")!=null;
  58.         if(bolt.getBejglik().stream().anyMatch(b->b.getTipus().equals(tipus)&&b.isRumosE()==rumos&&b.isVeganE()==vegan&&b.getMennyiseg()>=mennyiseg)) {
  59.         //if(bolt.getBejglik().stream().anyMatch(b->b.equals(new Bejgli(tipus,mennyiseg,rumos,vegan)))){
  60.             Bejgli rendelendo = new Bejgli(tipus,mennyiseg,rumos,vegan);
  61.             rendelendo.decreaseDarabszam(mennyiseg);
  62.             bolt.addMegrendeles(new Megrendeles(rendelendo,mennyiseg));
  63.             request.setAttribute("message","sikeres rendelés");
  64.         }
  65.         else{
  66.             request.setAttribute("message","rendelés nem teljesíthető, mert nincs elegendő mennyiség a kért bejgliből");
  67.         }
  68.         request.getRequestDispatcher("rendeles.jsp").forward(request,response);
  69.     }
  70.  
  71.     @Override
  72.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  73.  
  74.     }
  75. }
  76.  
  77. package com.example.alpotzh.model;
  78.  
  79. public class Bejgli {
  80.     private BejgliTipus tipus;
  81.  
  82.     public void setMennyiseg(int mennyiseg) {
  83.         this.mennyiseg = mennyiseg;
  84.     }
  85.  
  86.     private int mennyiseg;
  87.     private boolean veganE;
  88.  
  89.     public BejgliTipus getTipus() {
  90.         return tipus;
  91.     }
  92.  
  93.     public int getMennyiseg() {
  94.         return mennyiseg;
  95.     }
  96.  
  97.     public boolean isVeganE() {
  98.         return veganE;
  99.     }
  100.  
  101.     public boolean isRumosE() {
  102.         return rumosE;
  103.     }
  104.  
  105.     private boolean rumosE;
  106.  
  107.  
  108.     public Bejgli(BejgliTipus tipus, int mennyiseg, boolean veganE, boolean rumosE) {
  109.         this.tipus = tipus;
  110.         this.mennyiseg = mennyiseg;
  111.         this.veganE = veganE;
  112.         this.rumosE = rumosE;
  113.     }
  114.  
  115.     @Override
  116.     public String toString() {
  117.         return "Íz: " + tipus +
  118.                 ", veganE=" + veganE +
  119.                 ", rumosE=" + rumosE;
  120.     }
  121.  
  122.     public void decreaseDarabszam(int input) {
  123.         this.mennyiseg = mennyiseg-input;
  124.     }
  125.  
  126.     @Override
  127.     public boolean equals(Object o) {
  128.         if (this == o) return true;
  129.         if (o == null || getClass() != o.getClass()) return false;
  130.  
  131.         Bejgli bejgli = (Bejgli) o;
  132.  
  133.         if (veganE != bejgli.veganE) return false;
  134.         if (rumosE != bejgli.rumosE) return false;
  135.         return tipus == bejgli.tipus;
  136.     }
  137.  
  138.     @Override
  139.     public int hashCode() {
  140.         int result = tipus.hashCode();
  141.         result = 31 * result + (veganE ? 1 : 0);
  142.         result = 31 * result + (rumosE ? 1 : 0);
  143.         return result;
  144.     }
  145. }
  146.  
  147. package com.example.alpotzh.model;
  148.  
  149. import java.util.ArrayList;
  150.  
  151. public class Bejglibolt {
  152.     private static Bejglibolt instance;
  153.  
  154.     public ArrayList<Bejgli> getBejglik() {
  155.         return bejglik;
  156.     }
  157.  
  158.     public ArrayList<Megrendeles> getMegrendelesek() {
  159.         return megrendelesek;
  160.     }
  161.  
  162.     private ArrayList<Bejgli> bejglik;
  163.     private ArrayList<Megrendeles> megrendelesek;
  164.  
  165.     public static Bejglibolt getInstance() {
  166.         if (instance == null) {
  167.             instance = new Bejglibolt();
  168.         }
  169.         return instance;
  170.     }
  171.  
  172.     private Bejglibolt() {
  173.         this.bejglik = new ArrayList();
  174.         this.megrendelesek = new ArrayList<>();
  175.         Bejgli a1= new Bejgli(BejgliTipus.Dios,40,true,true);
  176.         Bejgli a2= new Bejgli(BejgliTipus.Makos,30,false,true);
  177.         Bejgli a3= new Bejgli(BejgliTipus.Gesztenyes,15,true,false);
  178.         bejglik.add(a1);
  179.         bejglik.add(a2);
  180.         bejglik.add(a3);
  181.  
  182.         megrendelesek.add(new Megrendeles(a1,5));
  183.         megrendelesek.add(new Megrendeles(a1,12));
  184.         megrendelesek.add(new Megrendeles(a2,5));
  185.         megrendelesek.add(new Megrendeles(a3,5));
  186.     }
  187.  
  188.     public Megrendeles findRendelesId(int id){
  189.         return megrendelesek.stream().filter(a->a.getId()==id).findFirst().orElse(null);
  190.     }
  191.  
  192.     public void addMegrendeles(Megrendeles m){
  193.         //darabszám csökkentése nem sikerült, voltak nullpointerexceptionok teszt közben
  194.         //bejglik.stream().filter(b->b.getTipus().equals(m.getRendelendo().getTipus())&&b.isRumosE()==m.getRendelendo().isRumosE()&&b.isVeganE()==m.getRendelendo().isVeganE()&&b.getMennyiseg()>=m.getRendelendo().getMennyiseg()).findFirst().get().decreaseDarabszam(m.getDb());
  195.         //m.getRendelendo().setMennyiseg(m.getRendelendo().getMennyiseg()-m.getDb());
  196.         findBejgli(m.getRendelendo()).decreaseDarabszam(m.getDb());
  197.         megrendelesek.add(m);
  198.     }
  199.  
  200.     public Bejgli findBejgli(Bejgli bejgli){
  201.         return bejglik.stream().filter(b->b.isVeganE()== bejgli.isVeganE()).filter(b->b.isRumosE()==bejgli.isRumosE()).filter(b->b.getTipus().equals(bejgli.getTipus())).findFirst().orElse(null);
  202.     }
  203.  
  204.  
  205. }
  206.  
  207.  
  208. package com.example.alpotzh.model;
  209.  
  210. public enum BejgliTipus {
  211.     Makos,
  212.     Dios,
  213.     Gesztenyes
  214. }
  215.  
  216.  
  217. package com.example.alpotzh.model;
  218.  
  219. public class Megrendeles {
  220.     public int getId() {
  221.         return id;
  222.     }
  223.  
  224.     public int getDb() {
  225.         return db;
  226.     }
  227.  
  228.     private int id;
  229.     static int nextId = 0;
  230.  
  231.     public Bejgli getRendelendo() {
  232.         return rendelendo;
  233.     }
  234.  
  235.     private Bejgli rendelendo;
  236.     private int db;
  237.  
  238.     public Megrendeles(Bejgli rendelendo, int db) {
  239.         this.id = nextId++;
  240.         this.rendelendo = rendelendo;
  241.         this.db = db;
  242.     }
  243. }
  244.  
  245.  
  246. <%@ page import="com.example.alpotzh.model.Megrendeles" %>
  247. <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
  248. <!DOCTYPE html>
  249. <html>
  250. <head>
  251.     <title>JSP - Hello World</title>
  252. </head>
  253. <body>
  254. <h1><%= "Hello World!" %>
  255. </h1>
  256. <br/>
  257. <form method="get" action="RendelesAdatokServlet">
  258.     Rendelésszám: <input type="number" name="id">
  259.     <input type="submit" value="Küldés">
  260. </form>
  261. <a href="rendeles.jsp">Rendelés</a>
  262.  
  263. <%=
  264.     request.getAttribute("message") == null ? "" : request.getAttribute("message")
  265. %>
  266. <%
  267.     //if(request.getAttribute("megrendeles")!=null)
  268.         Megrendeles megrendeles = (Megrendeles)request.getAttribute("megrendeles");
  269.     if(megrendeles!=null){
  270.         %>
  271.         <table border="1">
  272.             <tr>
  273.                 <td>
  274.                     Id: <%=megrendeles.getId()%>
  275.                 </td>
  276.                 <td>
  277.                     Bejgli: <%=megrendeles.getRendelendo()%>
  278.                 </td>
  279.                 <td>
  280.                     Mennyiség: <%=megrendeles.getDb()%>
  281.                 </td>
  282.             </tr>
  283.         </table>
  284. <%
  285.     };
  286. %>
  287. </body>
  288. </html>
  289.  
  290. <%@ page import="com.example.alpotzh.model.Bejglibolt" %>
  291. <%@ page import="com.example.alpotzh.model.BejgliTipus" %>
  292. <%@ page import="com.example.alpotzh.model.Bejgli" %><%--
  293.   Created by IntelliJ IDEA.
  294.   User: kklev
  295.   Date: 2022. 01. 03.
  296.   Time: 14:48
  297.   To change this template use File | Settings | File Templates.
  298. --%>
  299. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  300. <html>
  301. <head>
  302.     <title>Rendelés</title>
  303. </head>
  304. <body>
  305. <h1>
  306.     Rendelj bejglit :)
  307. </h1>
  308. <form method="get" action="RendelesServlet">
  309.     Ízesítés: <select name="tipus">
  310.     <option value="<%=BejgliTipus.Dios%>">Diós</option>
  311.     <option value="<%=BejgliTipus.Makos%>">Mákos</option>
  312.     <option value="<%=BejgliTipus.Gesztenyes%>">Gesztenyés</option>
  313. </select><br/>
  314.     Rumos? <input type="checkbox" name="rumos"><br/>
  315.     Vegán? <input type="checkbox" name="vegan"><br/>
  316.     Mennyiség: <input type="number" name="db"><br/>
  317.     <input type="submit" value="Rendelés">
  318. </form><br/>
  319. <%=
  320. request.getAttribute("message") == null ? "" : request.getAttribute("message")
  321. %>
  322. </body>
  323. </html>
  324.  
Add Comment
Please, Sign In to add comment