Lösung der Aufgabe
Modellierung
Siehe Webshop Projekt unter Implementation
Implementation
import Netzklassen.Server;
import Netzklassen.List;
import java.lang.Integer;
public class ShopServer extends Server{
private List<Bestellung> bestellungen = new List<Bestellung>();
public ShopServer(){
super(123);
}
public void processMessage(String pClientIP, int pClientPort, String pMessage) {
String header = pMessage.split(":")[0];
String content = pMessage.split(":", 2)[1];
switch(header){
case "EINHORNFURZKISSEN":
String g = content.split(":")[0];
String f = content.split(":")[1];
if(groesseKorrekt(g) && farbeKorrekt(f)){
System.out.println("teststatement");
Bestellung b = new Bestellung(new Einhornfurzkissen(21.72, g, f));
int id = len(bestellungen);
b.setID(id);
b.setBestaetigt(false);
bestellungen.append(b);
send(pClientIP, pClientPort, "1:" + g + ":" + f + ":" + id);
}else{
send(pClientIP, pClientPort, "0:Ungültige Eingabe! Wählen Sie Größe und Farbe für ihr Furzkissen!");
}
break;
case "BESTAETIGUNG":
if(content.split(":")[0].equals("ja")){
send(pClientIP, pClientPort, "2:Großartige Bestellung! Merci und Au revoir!");
bestaetige(Integer.parseInt(content.split(":")[1]));
close();
}else{
send(pClientIP, pClientPort, "0:Ursprünglich flasche Eingabe! Wählen Sie Größe und Farbe für ihr Furzkissen!");
}
break;
default:
break;
}
}
private void bestaetige(int id){
bestellungen.toFirst();
while(bestellungen.hasAccess()){
if(bestellungen.getContent().getID() == id){
bestellungen.getContent().setBestaetigt(true);
}
}
}
private int len(List pList){
int out = 0;
pList.toFirst();
while(pList.hasAccess()){
pList.next();
out++;
}
return out;
}
public void processNewConnection(String pClientIP, int pClientPort) {
send(pClientIP, pClientPort, "0:Willkommen! Wählen Sie Größe und Farbe für ihr Furzkissen!");
}
public void processClosingConnection(String pClientIP, int pClientPort){
}
private boolean farbeKorrekt(String in){
String[] pos = {"Lila", "Blau", "Grün", "Pink"};
boolean out = false;
for(String i:pos){
if(i.equals(in)) out = true;
}
return out;
}
private boolean groesseKorrekt(String in){
String[] pos = {"S", "M", "L", "XL"};
boolean out = false;
for(String i:pos){
if(i.equals(in)) out = true;
}
return out;
}
}