summaryrefslogtreecommitdiffstats
path: root/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src
diff options
context:
space:
mode:
Diffstat (limited to 'Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src')
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/conf/MANIFEST.MF2
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/conf/persistence.xml10
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/adressen/AdressenBean.java43
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/adressen/AdressenRemote.java19
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerBean.java123
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerRemote.java29
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungBean.java70
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungRemote.java20
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/bestell/BestellBean.java115
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/bestell/BestellRemote.java23
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerBean.java99
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerRemote.java25
-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
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lieferant/LieferantBean.java55
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lieferant/LieferantRemote.java22
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/entities/Artikel.java112
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/entities/Kunde.java100
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/AuftragsAbwicklungException.java22
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/IdBereitsVergebenException.java19
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/IllegalerWertException.java26
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/UnbekanntesEntityException.java29
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/helper/Auftrag.java69
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/helper/AuftragsPosition.java56
24 files changed, 1204 insertions, 0 deletions
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/conf/MANIFEST.MF b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/conf/MANIFEST.MF
new file mode 100644
index 0000000..59499bc
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/conf/MANIFEST.MF
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/conf/persistence.xml b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/conf/persistence.xml
new file mode 100644
index 0000000..21115af
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/conf/persistence.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
+ <persistence-unit name="DSI-ejbPU" transaction-type="JTA">
+ <provider>oracle.toplink.essentials.PersistenceProvider</provider>
+ <jta-data-source>jdbc/sample</jta-data-source>
+ <properties>
+ <property name="toplink.ddl-generation" value="create-tables"/>
+ </properties>
+ </persistence-unit>
+</persistence>
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/adressen/AdressenBean.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/adressen/AdressenBean.java
new file mode 100644
index 0000000..9046ed5
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/adressen/AdressenBean.java
@@ -0,0 +1,43 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.adressen;
+
+
+import beans.*;
+import javax.ejb.Stateless;
+import javax.jws.WebService;
+
+/**
+ *
+ * @author jmueller
+ */
+@Stateless(mappedName="AdressenBean")
+public class AdressenBean implements AdressenRemote {
+
+
+ /**
+ * gibt zu einer Artikel-Id die Adresse des Lieferanten zurück
+ * @param artikel_id Die Artikel-Id
+ * @return Die Adresse des Lieferanten
+ */
+ public String getLieferantenAdresseFuerArtikel( long artikel_id) {
+ if(artikel_id == 1)
+ return "Shimano, Merkelstr. 133, 12345 Dresden";
+ else if (artikel_id == 2)
+ return "Siemens, Zumwinkelstr. 31, 123123 Berlin";
+ else if (artikel_id == 3)
+ return "Schwalbe, Taubenweg 3, 54566 Hannover";
+ else
+ return "Musterfirma, Musterstrasse 123, 12345 Musterstadt";
+
+
+ }
+
+
+ // 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/adressen/AdressenRemote.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/adressen/AdressenRemote.java
new file mode 100644
index 0000000..24970cf
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/adressen/AdressenRemote.java
@@ -0,0 +1,19 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.adressen;
+
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author jmueller
+ */
+@Remote
+public interface AdressenRemote {
+
+ String getLieferantenAdresseFuerArtikel(long artikel_id);
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerBean.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerBean.java
new file mode 100644
index 0000000..71b10ae
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerBean.java
@@ -0,0 +1,123 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.artikelManager;
+
+import beans.*;
+import entities.Artikel;
+import exceptions.IdBereitsVergebenException;
+import exceptions.UnbekanntesEntityException;
+import java.util.List;
+import javax.ejb.Stateless;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+/**
+ *
+ * @author Jan
+ */
+@WebService
+@Stateless(mappedName="ArtikelManagerBean")
+public class ArtikelManagerBean implements ArtikelManagerRemote {
+ @PersistenceContext
+ private EntityManager em;
+
+
+ /**
+ * erstellt einen Artikel und liefert die Artikel-Id zurueck
+ * @param artikel
+ * @return Artikel-Id
+ */
+ @WebMethod
+ public @WebResult(name="newArtikelId") long createArtikel(
+ @WebParam(name="artikel") Artikel artikel) throws IdBereitsVergebenException {
+ try {
+ em.persist(artikel);
+ return artikel.getId();
+ }
+ catch(Exception e){
+ throw new IdBereitsVergebenException("Artikel-Id bereits vergeben: [id="+ artikel.getId()+"]");
+ }
+ }
+
+
+ /**
+ * Gibt einen Artikel anhand seiner Id zurueck
+ * @param artikelId
+ * @return
+ */
+ @WebMethod
+ public @WebResult(name="artikel") Artikel readArtikel(
+ @WebParam(name="artikelId") long artikelId) throws UnbekanntesEntityException{
+ Artikel artikel = em.find(Artikel.class, artikelId );
+ if (artikel == null)
+ throw new UnbekanntesEntityException("Artikel", artikelId);
+ return artikel;
+ }
+
+
+ /**
+ * gibt alle Artikel zurueck
+ * @return
+ */
+ @WebMethod
+ public @WebResult(name="allArtikel") List<Artikel> readAllArtikel(){
+ return (List<Artikel>)em.createQuery("SELECT a FROM Artikel a ORDER BY a.id").getResultList();
+ }
+
+ /**
+ * Schreibt die Änderungen eines Artikels in die Datenbank
+ * @param artikel
+ */
+ @WebMethod
+ public void updateArtikel(
+ @WebParam(name="artikel") Artikel artikel){
+ em.merge(artikel);
+ }
+
+ /**
+ * Entfernt einen Artikel mit der angegebenen Artikel-Id
+ * @param artikelId
+ */
+ @WebMethod
+ public void deleteArtikel(
+ @WebParam(name="artikelId") long artikelId){
+ Artikel artikel = em.find(Artikel.class, artikelId );
+ em.remove(artikel);
+ }
+
+
+ /**
+ * entfernt alle Artikel
+ */
+ @WebMethod
+ public void deleteAllArtikel(){
+ for(Artikel artikel : readAllArtikel()){
+ deleteArtikel( artikel.getId() );
+ }
+ }
+
+
+ /**
+ * Prüft ob es einen Artikel mit angegebener Artikel-Id gibt
+ * @param artikelId
+ * @return
+ */
+ @WebMethod
+ public @WebResult(name="existiert") boolean existsArtikel(
+ @WebParam(name="artikelId") long artikelId){
+ Artikel artikel = em.find(Artikel.class, artikelId );
+ if(artikel != null)
+ return true;
+
+ return false;
+ }
+
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerRemote.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerRemote.java
new file mode 100644
index 0000000..dba3832
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerRemote.java
@@ -0,0 +1,29 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.artikelManager;
+
+import entities.Artikel;
+import exceptions.IdBereitsVergebenException;
+import exceptions.UnbekanntesEntityException;
+import java.util.List;
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author Jan
+ */
+@Remote
+public interface ArtikelManagerRemote {
+
+ public long createArtikel(Artikel artikel) throws IdBereitsVergebenException;
+ public Artikel readArtikel(long artikelId) throws UnbekanntesEntityException;
+ public List<Artikel> readAllArtikel();
+ public void updateArtikel(Artikel artikel);
+ public void deleteArtikel(long artikelId);
+ public void deleteAllArtikel();
+ public boolean existsArtikel(long artikelId);
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungBean.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungBean.java
new file mode 100644
index 0000000..625261f
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungBean.java
@@ -0,0 +1,70 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package beans.auftragsAbwicklung;
+
+import beans.bestell.BestellRemote;
+import beans.lieferant.LieferantRemote;
+import beans.lager.LagerRemote;
+import beans.*;
+import beans.artikelManager.ArtikelManagerRemote;
+import entities.Artikel;
+import exceptions.AuftragsAbwicklungException;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+
+/**
+ * Eine Klasse für das abwickeln von Aufträgen
+ * @author jmueller
+ */
+@Stateless(mappedName="AuftragsAbwicklungBean")
+public class AuftragsAbwicklungBean implements AuftragsAbwicklungRemote {
+ @EJB
+ private BestellRemote bestellBean;
+ @EJB
+ private ArtikelManagerRemote artikelManagerBean;
+
+ @EJB
+ private LieferantRemote lieferantBean;
+ @EJB
+ private LagerRemote lagerBean;
+
+
+ /**
+ * simuliert die Bestellung eines Artikels durch einen Kunden
+ *
+ * @param kundenId Id des Kunden
+ * @param artikelId Id des Artikels
+ * @param artikelAnzahl Anzahl des Artikels
+ *
+ * @return String Bericht
+ * @throws java.lang.Exception
+ */
+ public String bestelleArtikel(long kundenId, long artikelId, long artikelAnzahl ) throws Exception{
+
+
+ if( bestellBean.validiereBestellung(artikelId, artikelAnzahl, kundenId) != true){
+ throw new AuftragsAbwicklungException("Bestellung nicht valide!");
+ }
+
+ Artikel artikel = artikelManagerBean.readArtikel(artikelId);
+
+
+ // falls nicht verfuegbar -> nachbestellen
+ if (lagerBean.pruefeVerfuegbarkeit(artikelId, artikelAnzahl) != true) {
+ long mindestMenge = 10L;
+ long imLager = artikel.getAnzahl();
+ long anzahlNachbestellen = artikelAnzahl - imLager + mindestMenge;
+ lieferantBean.bestelleNach(artikelId, anzahlNachbestellen);
+ }
+
+ lagerBean.bucheArtikelAus(artikelId, artikelAnzahl);
+ double preisOhneMwSt = bestellBean.berechneGesamtpreis(artikelAnzahl, artikel.getPreis());
+ double MwSt = bestellBean.berechneMehrwertSteuer(preisOhneMwSt);
+
+ return "";
+ }
+
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungRemote.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungRemote.java
new file mode 100644
index 0000000..4dfa025
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungRemote.java
@@ -0,0 +1,20 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.auftragsAbwicklung;
+
+import exceptions.AuftragsAbwicklungException;
+import helper.AuftragsPosition;
+import java.util.List;
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author jmueller
+ */
+@Remote
+public interface AuftragsAbwicklungRemote {
+ public String bestelleArtikel(long kundenId, long artikelId, long artikelAnzahl) throws Exception;
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/bestell/BestellBean.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/bestell/BestellBean.java
new file mode 100644
index 0000000..4e3b125
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/bestell/BestellBean.java
@@ -0,0 +1,115 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.bestell;
+
+import beans.kundenManager.KundenManagerRemote;
+import beans.*;
+import beans.artikelManager.ArtikelManagerRemote;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+
+/**
+ *
+ * @author Jan
+ */
+@WebService
+@Stateless(mappedName="BestellBean")
+public class BestellBean implements BestellRemote {
+ @EJB
+ private KundenManagerRemote kundenManagerBean;
+ @EJB
+ private ArtikelManagerRemote artikelManagerBean;
+
+
+ /**
+ * testet ob eine Position valide ist,
+ * das heisst ob es einen Artikel mit angegebener Id gibt
+ * und ob die anzahl &gt; 0 ist
+ *
+ * @param artikelId
+ * @param anzahl
+ * @return true falls valide
+ */
+ @WebMethod
+ public @WebResult(name="valide") boolean validierePosition
+ ( @WebParam(name="artikelId") long artikelId,
+ @WebParam(name="anzahl") long anzahl) {
+
+ // verifiziere, dass mindestens ein Artikel bestellt wird
+ if(anzahl < 1){
+ return false;
+ }
+
+ // verifiziere dass ein Artikel mit dieser id existiert
+ if (artikelManagerBean.existsArtikel(artikelId) == false){
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * validiert eine Bestellung,
+ *
+ * siehe validierePosition, allerdings mit Überprüfung ob ein Kunde
+ * mit angegebener Id existiert
+ *
+ * @param artikelId Id des Artikels
+ * @param anzahl Artikel-Anzahl
+ * @param kundenId Id des Kunden
+ * @return true falls valide
+ */
+ @WebMethod
+ public @WebResult(name="valide") boolean validiereBestellung
+ ( @WebParam(name="artikelId") long artikelId,
+ @WebParam(name="anzahl") long anzahl,
+ @WebParam(name="kundenId") long kundenId) {
+
+
+ if( validierePosition(artikelId, anzahl) != true){
+ return false;
+ }
+
+ if(kundenManagerBean.existsKunde(kundenId) == false){
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * berechnet den Gesamtpreis der bestellten Artikel
+ *
+ * @param anzahl Anzahl der Artikel
+ * @param preis Einzel-Preis
+ * @return Gesamtpreis
+ */
+ @WebMethod
+ public @WebResult(name="gesamtpreis") double berechneGesamtpreis
+ ( @WebParam(name="anzahl") long anzahl,
+ @WebParam(name="preis") double preis) {
+ return anzahl * preis;
+ }
+
+ /**
+ * Berechnet die Mehrwertsteuer
+ *
+ * es wird von einer Mehrwert-Steuer von 19% ausgegangen
+ *
+ * @param preis Der Preis
+ * @return MwSt Die berechnete Mehrwertsteuer
+ */
+ @WebMethod
+ public @WebResult(name="mehrwertsteuer") double berechneMehrwertSteuer(
+ @WebParam(name="preis") double preis) {
+ return 0.19 * preis;
+ }
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/bestell/BestellRemote.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/bestell/BestellRemote.java
new file mode 100644
index 0000000..a6f1001
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/bestell/BestellRemote.java
@@ -0,0 +1,23 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.bestell;
+
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author Jan
+ */
+@Remote
+public interface BestellRemote {
+
+ public double berechneGesamtpreis(long anzahl, double preis);
+ public double berechneMehrwertSteuer(double preis);
+ public boolean validierePosition(long artikelId, long anzahl);
+ public boolean validiereBestellung(long artikelId, long anzahl, @javax.jws.WebParam(name = "kundenId")
+ long kundenId);
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerBean.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerBean.java
new file mode 100644
index 0000000..b0de74c
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerBean.java
@@ -0,0 +1,99 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.kundenManager;
+
+import beans.*;
+import entities.Kunde;
+import java.util.List;
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+/**
+ *
+ * @author Jan
+ */
+
+@Stateless(mappedName="KundenManagerBean")
+public class KundenManagerBean implements KundenManagerRemote {
+ @PersistenceContext
+ private EntityManager em;
+
+
+ /**
+ * erstellt einen Kunden und liefert die Kunden-Id zurueck
+ * @param Kunde
+ * @return Kunden-Id
+ */
+ public long createKunde(Kunde kunde) {
+ em.persist(kunde);
+
+ return kunde.getId();
+ }
+
+
+ /**
+ * Gibt einen Kunden anhand seiner Id zurueck
+ * @param kundeId
+ * @return
+ */
+ public Kunde readKunde(long kundeId){
+ Kunde kunde = em.find(Kunde.class, kundeId );
+ return kunde;
+ }
+
+
+ /**
+ * gibt alle Kunden zurueck
+ * @return
+ */
+ public List<Kunde> readAllKunden(){
+ return (List<Kunde>)em.createQuery("SELECT k FROM Kunde k ORDER BY k.id").getResultList();
+ }
+
+ /**
+ * Schreibt die Änderungen eines Kunden in die Datenbank
+ * @param kunde Der Kunde
+ */
+ public void updateKunde(Kunde kunde){
+ em.merge(kunde);
+ }
+
+ /**
+ * Entfernt einen Kunden mit der angegebenen Kunden-Id
+ * @param kundeId
+ */
+ public void deleteKunde(long kundeId){
+ Kunde kunde = em.find(Kunde.class, kundeId );
+ em.remove(kunde);
+ }
+
+
+ /**
+ * entfernt alle Kunden
+ *
+ */
+ public void deleteAllKunden(){
+ for(Kunde kunde : readAllKunden()){
+ deleteKunde( kunde.getId() );
+ }
+ }
+
+
+ /**
+ * Prüft ob es einen Kunden mit angegebener Kunden-Id gibt
+ * @param kundeId
+ * @return true falls ein Kunde mit angegebener ID existiert
+ */
+ public boolean existsKunde(long kundeId){
+ Kunde kunde = em.find(Kunde.class, kundeId );
+ if(kunde != null)
+ return true;
+
+ return false;
+ }
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerRemote.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerRemote.java
new file mode 100644
index 0000000..935c715
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerRemote.java
@@ -0,0 +1,25 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.kundenManager;
+
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author Jan
+ */
+@Remote
+public interface KundenManagerRemote {
+
+ public long createKunde(entities.Kunde kunde);
+ public entities.Kunde readKunde(long kundeId);
+ public java.util.List<entities.Kunde> readAllKunden();
+ public void updateKunde(entities.Kunde kunde);
+ public void deleteKunde(long kundeId);
+ public void deleteAllKunden();
+ public boolean existsKunde(long kundeId);
+
+}
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;
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lieferant/LieferantBean.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lieferant/LieferantBean.java
new file mode 100644
index 0000000..2dbc76a
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lieferant/LieferantBean.java
@@ -0,0 +1,55 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.lieferant;
+
+import beans.*;
+import beans.lager.LagerRemote;
+import beans.artikelManager.ArtikelManagerRemote;
+import beans.adressen.AdressenRemote;
+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;
+
+/**
+ *
+ * @author jmueller
+ */
+@WebService
+@Stateless(mappedName="LieferantBean")
+public class LieferantBean implements LieferantRemote {
+ @EJB
+ private ArtikelManagerRemote artikelManagerBean;
+ @EJB
+ private LagerRemote lagerBean;
+ @EJB
+ private AdressenRemote adressenBean;
+
+
+
+ /**
+ * bestellt eine bestimmte Anzahl von Artikeln nach
+ * @param id die Id des Artikels
+ * @param anzahl die Anzahl
+ */
+ // TODO: Session Bean erstellen die die Adresse des Lieferanten für bestimmte
+ // Artikel heraussucht
+ @WebMethod
+ public void bestelleNach(
+ @WebParam(name="artikelId") long id,
+ @WebParam(name="anzahl") long anzahl) throws UnbekanntesEntityException, IllegalerWertException{
+ System.out.println("Lieferant: bestelleNach("+id+","+anzahl+")");
+ lagerBean.bucheArtikelEin(id, anzahl);
+
+ System.out.println("Bestellung erfolgt bei: " + adressenBean.getLieferantenAdresseFuerArtikel(id) );
+ }
+
+
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lieferant/LieferantRemote.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lieferant/LieferantRemote.java
new file mode 100644
index 0000000..9a4a63f
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/beans/lieferant/LieferantRemote.java
@@ -0,0 +1,22 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.lieferant;
+
+import exceptions.IllegalerWertException;
+import exceptions.UnbekanntesEntityException;
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author jmueller
+ */
+@Remote
+public interface LieferantRemote {
+
+ void bestelleNach(long id, long anzahl) throws UnbekanntesEntityException, IllegalerWertException;
+
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/entities/Artikel.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/entities/Artikel.java
new file mode 100644
index 0000000..9859fc6
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/entities/Artikel.java
@@ -0,0 +1,112 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package entities;
+
+import java.io.Serializable;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+/**
+ * Eine Klasse welche den Typ eines Artikels verwaltet
+ * @author jmueller
+ */
+@Entity
+public class Artikel implements Serializable {
+ private static final long serialVersionUID = 1L;
+ private Long id;
+ private String bezeichnung;
+ private Long anzahl;
+ private Double preis;
+
+
+ public Artikel(){
+
+ }
+
+ public Artikel(Long id, String bezeichnung, Long anzahl, Double preis) {
+ this.id = id;
+ this.bezeichnung = bezeichnung;
+ this.anzahl = anzahl;
+ this.preis = preis;
+ }
+
+
+
+
+ /**
+ * Default-Konstruktor
+ */
+
+
+/*
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ public int getId() {
+ return id;
+ }
+*/
+ @Override
+ public int hashCode() {
+ int hash = 0;
+ hash += getId();
+ return hash;
+ }
+
+ @Override
+ public boolean equals(Object object) {
+ if (!(object instanceof Artikel)) {
+ return false;
+ }
+ Artikel other = (Artikel) object;
+ if (this.getId() != other.getId()) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return "entities.Artikel[id=" + getId() + "]";
+ }
+
+ public String getBezeichnung() {
+ return bezeichnung;
+ }
+
+ public void setBezeichnung(String bezeichnung) {
+ this.bezeichnung = bezeichnung;
+ }
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getAnzahl() {
+ return anzahl;
+ }
+
+ public void setAnzahl(Long anzahl) {
+ this.anzahl = anzahl;
+ }
+
+ public Double getPreis() {
+ return preis;
+ }
+
+ public void setPreis(Double preis) {
+ this.preis = preis;
+ }
+
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/entities/Kunde.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/entities/Kunde.java
new file mode 100644
index 0000000..0ebadfc
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/entities/Kunde.java
@@ -0,0 +1,100 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package entities;
+
+import java.io.Serializable;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+/**
+ *
+ * @author Jan
+ */
+@Entity
+public class Kunde implements Serializable {
+ private static final long serialVersionUID = 1L;
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Long id;
+ private String vorname;
+ private String nachname;
+ private String adresse;
+
+ public Kunde() {
+ }
+
+ public Kunde(Long id, String vorname, String nachname, String adresse) {
+ this.id = id;
+ this.vorname = vorname;
+ this.nachname = nachname;
+ this.adresse = adresse;
+ }
+
+
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ @Override
+ public int hashCode() {
+ int hash = 0;
+ hash += (id != null ? id.hashCode() : 0);
+ return hash;
+ }
+
+ @Override
+ public boolean equals(Object object) {
+ // TODO: Warning - this method won't work in the case the id fields are not set
+ if (!(object instanceof Kunde)) {
+ return false;
+ }
+ Kunde other = (Kunde) object;
+
+ // true -> wenn alle Daten identisch sind
+ if(this.id.equals(other.id) && this.vorname.equals(other.vorname) && this.nachname.equals(other.nachname) && this.adresse.equals(other.adresse)){
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return "entities.Kunde[id=" + id + "," + vorname +"," + nachname +"," + adresse +"]";
+ }
+
+ public String getVorname() {
+ return vorname;
+ }
+
+ public void setVorname(String vorname) {
+ this.vorname = vorname;
+ }
+
+ public String getNachname() {
+ return nachname;
+ }
+
+ public void setNachname(String nachname) {
+ this.nachname = nachname;
+ }
+
+ public String getAdresse() {
+ return adresse;
+ }
+
+ public void setAdresse(String adresse) {
+ this.adresse = adresse;
+ }
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/AuftragsAbwicklungException.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/AuftragsAbwicklungException.java
new file mode 100644
index 0000000..8aa5574
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/AuftragsAbwicklungException.java
@@ -0,0 +1,22 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package exceptions;
+
+import javax.ejb.ApplicationException;
+
+/**
+ *
+ * @author jmueller
+ */
+@ApplicationException(rollback=true)
+public class AuftragsAbwicklungException extends Exception {
+ private static final long serialVersionUID = 1L;
+
+ public AuftragsAbwicklungException(String msg){
+ super("Auftrag konnte nicht Abgewickelt werden: " + msg);
+ }
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/IdBereitsVergebenException.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/IdBereitsVergebenException.java
new file mode 100644
index 0000000..685b931
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/IdBereitsVergebenException.java
@@ -0,0 +1,19 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package exceptions;
+
+import javax.ejb.ApplicationException;
+
+/**
+ *
+ * @author Jan
+ */
+@ApplicationException(rollback=true)
+public class IdBereitsVergebenException extends Exception{
+ public IdBereitsVergebenException(String msg) {
+ super(msg);
+ }
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/IllegalerWertException.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/IllegalerWertException.java
new file mode 100644
index 0000000..eb21936
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/IllegalerWertException.java
@@ -0,0 +1,26 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package exceptions;
+
+import javax.ejb.ApplicationException;
+
+/**
+ *
+ * @author Jan
+ */
+@ApplicationException(rollback=true)
+public class IllegalerWertException extends Exception {
+
+ public IllegalerWertException(String msg) {
+ super(msg);
+ }
+
+ public IllegalerWertException(String variablenName, Object wert) {
+ super("Illegaler Wert: [" + variablenName+ " = " + wert.toString() +"]");
+ }
+
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/UnbekanntesEntityException.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/UnbekanntesEntityException.java
new file mode 100644
index 0000000..0d1c405
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/exceptions/UnbekanntesEntityException.java
@@ -0,0 +1,29 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package exceptions;
+
+import javax.ejb.ApplicationException;
+
+/**
+ *
+ * @author jmueller
+ */
+@ApplicationException(rollback=true)
+public class UnbekanntesEntityException extends Exception {
+
+ /**
+ * Constructs an instance of <code>UnbekannterArtikelException</code> with the specified detail message.
+ * @param msg the detail message.
+ */
+ public UnbekanntesEntityException(String msg) {
+ super(msg);
+ }
+
+ public UnbekanntesEntityException(String typ, long id) {
+ super("Unbekanntes Entity vom Typ: " + typ + " [id="+ id +"]");
+ }
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/helper/Auftrag.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/helper/Auftrag.java
new file mode 100644
index 0000000..ade052e
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/helper/Auftrag.java
@@ -0,0 +1,69 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package helper;
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+import javax.swing.AbstractListModel;
+
+/**
+ * Diese Klasse stellt einen Auftrag dar, der aus mehreren Auftragspositionen besteht
+ * @author jmueller
+ */
+public class Auftrag extends AbstractListModel implements Serializable {
+ private List<AuftragsPosition> positionen;
+
+
+ public Auftrag(){
+ this.positionen = new LinkedList<AuftragsPosition>();
+ }
+
+
+ /**
+ * gibt die Positionen zurück
+ * @return die Auftragspositionen
+ */
+ public List<AuftragsPosition> getPositionen() {
+ return this.positionen;
+ }
+
+ public int getSize() {
+ return this.positionen.size();
+ }
+
+ public Object getElementAt(int arg0) {
+ return this.positionen.get(arg0);
+ }
+
+
+ public void addPosition(int id, int anzahl){
+ this.addPosition(new AuftragsPosition(id, anzahl));
+
+ }
+
+ public void addPosition(AuftragsPosition position){
+ this.positionen.add(position);
+ this.fireIntervalAdded(position, this.positionen.size()-1, this.positionen.size()-1);
+ }
+
+ public void removePosition(AuftragsPosition position){
+ this.positionen.remove(position);
+ this.fireIntervalRemoved(position, 0, this.positionen.size());
+ }
+
+
+ public void positionChanged(AuftragsPosition position){
+ int index = this.positionen.indexOf(position);
+ this.fireContentsChanged(position, index, index);
+ }
+
+
+
+
+
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/helper/AuftragsPosition.java b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/helper/AuftragsPosition.java
new file mode 100644
index 0000000..fe276fa
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/Projekte/DSI-Praktikum-1/ausgang/DSI-ejb/src/java/helper/AuftragsPosition.java
@@ -0,0 +1,56 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package helper;
+
+import java.io.Serializable;
+
+/**
+ * Die Klasse stellt eine Auftragsposition dar
+ * @author jmueller
+ */
+public class AuftragsPosition implements Serializable {
+ private int id;
+ private int anzahl;
+
+ public AuftragsPosition() {
+ this.id = 0;
+ this.anzahl = 0;
+ }
+
+ public AuftragsPosition(int _id, int _anzahl){
+ this.id = _id;
+ this.anzahl = _anzahl;
+ }
+
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getAnzahl() {
+ return anzahl;
+ }
+
+ public void setAnzahl(int anzahl) {
+ this.anzahl = anzahl;
+ }
+
+
+ @Override
+ public String toString(){
+ return "Id: " + this.id + ", Anzahl: " + this.anzahl;
+ }
+
+
+
+
+
+
+}