summaryrefslogtreecommitdiffstats
path: root/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager
diff options
context:
space:
mode:
authorSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
committerSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
commit33613a85afc4b1481367fbe92a17ee59c240250b (patch)
tree670b842326116b376b505ec2263878912fca97e2 /Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager
downloadStudium-master.tar.gz
Studium-master.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager')
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager/LagerBean.java94
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager/LagerRemote.java22
2 files changed, 116 insertions, 0 deletions
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager/LagerBean.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager/LagerBean.java
new file mode 100644
index 0000000..2c6dcf7
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager/LagerBean.java
@@ -0,0 +1,94 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.lager;
+
+import beans.*;
+import beans.artikelManager.ArtikelManagerRemote;
+import entities.Artikel;
+import exceptions.IllegalerWertException;
+import exceptions.UnbekanntesEntityException;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.WebResult;
+
+/**
+ * Diese Klasse stellt Funktionen des Lagers bereit
+ * @author jmueller
+ */
+@WebService
+@Stateless(mappedName="LagerBean")
+public class LagerBean implements LagerRemote {
+ @EJB
+ private ArtikelManagerRemote artikelManagerBean;
+
+ /**
+ * bucht eine bestimmte Anzahl von Artikeln aus dem Lager aus
+ *
+ * @param id die Id des Artikels
+ * @param anzahl die Anzahl der auszubuchenden Artikel
+ */
+ @WebMethod
+ public void bucheArtikelAus(
+ @WebParam(name="artikelId")long id,
+ @WebParam(name="anzahl") long anzahl)throws UnbekanntesEntityException, IllegalerWertException{
+ System.out.println("Lager: bucheArtikelAus("+id+","+anzahl+")");
+ if(anzahl < 0){
+ throw new IllegalerWertException("anzahl", ""+id);
+ }
+ Artikel artikel = artikelManagerBean.readArtikel(id);
+ artikel.setAnzahl(artikel.getAnzahl() - anzahl);
+ artikelManagerBean.updateArtikel(artikel);
+ }
+
+
+ /**
+ * bucht eine bestimmte Anzahl von Artikeln ins Lager ein
+ *
+ * @param id
+ * @param anzahl
+ * @throws exceptions.UnbekanntesEntityException
+ * @throws exceptions.IllegalerWertException
+ */
+ @WebMethod
+ public void bucheArtikelEin(
+ @WebParam(name="artikelId")long id,
+ @WebParam(name="anzahl") long anzahl) throws UnbekanntesEntityException, IllegalerWertException{
+ System.out.println("Lager: bucheArtikelEin("+id+","+ anzahl+")");
+ if(anzahl < 0){
+ throw new IllegalerWertException("anzahl", ""+id);
+ }
+
+ Artikel artikel = artikelManagerBean.readArtikel(id);
+ artikel.setAnzahl(artikel.getAnzahl() + anzahl);
+ artikelManagerBean.updateArtikel(artikel);
+ }
+
+
+ /**
+ * Testet ob der Artikel in ausreichender Anzahl vorhanden ist,
+ * falls der Artikel nicht existiert wird false zurückgegeben
+ * @param id
+ * @param anzahl
+ * @return
+ */
+ @WebMethod
+ public @WebResult(name="verfuegbar") boolean pruefeVerfuegbarkeit(
+ @WebParam(name="artikelId") long id,
+ @WebParam(name="anzahl") long anzahl) throws Exception{
+ Artikel artikel = artikelManagerBean.readArtikel(id);
+ if( artikel.getAnzahl() >= anzahl ){
+ return true;
+ }
+
+ return false;
+ }
+
+ // Add business logic below. (Right-click in editor and choose
+ // "EJB Methods > Add Business Method" or "Web Service > Add Operation")
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager/LagerRemote.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager/LagerRemote.java
new file mode 100644
index 0000000..ea1e8d0
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager/LagerRemote.java
@@ -0,0 +1,22 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.lager;
+
+import exceptions.IllegalerWertException;
+import exceptions.UnbekanntesEntityException;
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author jmueller
+ */
+@Remote
+public interface LagerRemote {
+
+ public void bucheArtikelAus(long id, long anzahl) throws UnbekanntesEntityException, IllegalerWertException;
+ public void bucheArtikelEin(long id, long anzahl) throws UnbekanntesEntityException, IllegalerWertException;
+ public boolean pruefeVerfuegbarkeit(long id, long anzahl) throws Exception;
+}