diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager | |
| download | Studium-master.tar.gz Studium-master.tar.bz2 | |
Diffstat (limited to 'Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lager')
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; +} |
