UI wurde fortgesetzt. In FactorySystem wurde die getFactoryName methode

hinzugefügt.
main
Drees 2023-01-09 07:59:01 +01:00
parent c1494b6dbc
commit 68deef36dc
2 changed files with 92 additions and 45 deletions

View File

@ -9,56 +9,57 @@ import tpe.exceptions.roboter.RobotType;
public class FactorySystem { public class FactorySystem {
private RobotFactory rf; private RobotFactory rf;
RobotType robotType; RobotType robotType;
public FactorySystem(String factoryName)
{ public FactorySystem(String factoryName) {
this.rf=new RobotFactory(factoryName); this.rf = new RobotFactory(factoryName);
} }
public int constructRobot(int select, String name) { public int constructRobot(int select, String name) {
if(select==1) { if (select == 1) {
int id = rf.constructRobot(RobotType.R2D2, name); int id = rf.constructRobot(RobotType.R2D2, name);
return id; return id;
} } else {
else int id = rf.constructRobot(RobotType.C3PO, name);
{
int id=rf.constructRobot(RobotType.C3PO, name);
return id; return id;
} }
} }
public boolean triggerPower(int id)
{ public boolean triggerPower(int id) {
return rf.triggerPower(id); return rf.triggerPower(id);
} }
public boolean powerStatus(int id)
{ public boolean powerStatus(int id) {
return rf.powerStatus(id); return rf.powerStatus(id);
} }
public String robotInfo(int id)
{ public String robotInfo(int id) {
return rf.robotInfo(id); return rf.robotInfo(id);
} }
public String dismantleRobot(int id)
{ public String dismantleRobot(int id) {
if(rf.dismantleRobot(id)==null) if (rf.dismantleRobot(id) == null) {
{
return "Roboter erfolgreich demontiert"; return "Roboter erfolgreich demontiert";
} } else
else
return "Fehler beim Demontieren des Roboters"; return "Fehler beim Demontieren des Roboters";
} }
public RobotException robotBlackbox(int id)
{ public RobotException robotBlackbox(int id) {
return rf.robotBlackbox(id); //Bei Rückgabe von null gab es noch keinen Fehler return rf.robotBlackbox(id); // Bei Rückgabe von null gab es noch keinen Fehler
} }
public String robotInstructions(int id, int[]zahlen) throws RobotException
{ public String robotInstructions(int id, int[] zahlen) throws RobotException {
return rf.robotInstructions(id, zahlen); return rf.robotInstructions(id, zahlen);
} }
public int robotStockSize()
{ public int robotStockSize() {
return rf.robotStockSize(); return rf.robotStockSize();
} }
public boolean containsRobot(int id)
{ public boolean containsRobot(int id) {
return rf.containsRobot(id); return rf.containsRobot(id);
} }
public String getFName() {
return rf.getFactoryName();
}
} }

View File

@ -1,20 +1,26 @@
package tpe.ui; package tpe.ui;
import java.util.ArrayList;
import java.util.Scanner; import java.util.Scanner;
import tpe.exceptions.roboter.RobotFactory; import tpe.exceptions.roboter.RobotFactory;
import tpe.facade.FactorySystem;
public class UI { public class UI {
private FactorySystem fs;
Scanner sc = new Scanner(System.in); Scanner sc = new Scanner(System.in);
//hier fehlt noch die Verknüpfung zum Factorysystem public UI (FactorySystem fs) {
this.fs = fs;
menu();
}
private void menu() { private void menu() {
System.out.println("Willkommen bei der " + "Name der Roboterfabrik" + "!"); System.out.println("Willkommen bei der " + fs.getFName() + "!");
mainloop: mainloop:
while (true) { while (true) {
@ -32,7 +38,7 @@ private void menu() {
System.out.println(); System.out.println();
switch(input) { switch(input) {
case 1: showRobots(); break; // case 1: showRobots(); break;
case 2: buildRobot(); break; case 2: buildRobot(); break;
case 3: choseRobot(); break; case 3: choseRobot(); break;
case 4: break mainloop; case 4: break mainloop;
@ -43,12 +49,12 @@ private void menu() {
} }
} }
private void showRobots() { // private void showRobots() {
//
System.out.println("Folgende Roboter wurden bereits erstellt: "); // System.out.println("Folgende Roboter wurden bereits erstellt: ");
//
// Seriennummer, Typ und Name aller Roboter soll aufgelistet werden // // Seriennummer, Typ und Name aller Roboter soll aufgelistet werden
} // }
private void buildRobot() { private void buildRobot() {
System.out.println("Sie haben sich dazu entschieden einen Roboter zu bauen. " System.out.println("Sie haben sich dazu entschieden einen Roboter zu bauen. "
@ -67,7 +73,7 @@ private void menu() {
String name = sc.nextLine(); //name als Variable für Name String name = sc.nextLine(); //name als Variable für Name
System.out.println(); System.out.println();
int serialnumber = 0; // Methode aufrufen, welcher name und Typ übergeben wird und seriennummer zurückerhält.) int serialnumber = fs.constructRobot( robotType, name);
System.out.println("Sie haben einen Roboter vom Typ " + robotType + " mit dem Namen " + name + " mit der Seriennummer " + serialnumber + " erstellt."); System.out.println("Sie haben einen Roboter vom Typ " + robotType + " mit dem Namen " + name + " mit der Seriennummer " + serialnumber + " erstellt.");
} }
@ -80,6 +86,10 @@ private void menu() {
int id = Integer.parseInt(sc.nextLine()); int id = Integer.parseInt(sc.nextLine());
System.out.println(); System.out.println();
// if (id ist nicht vorhanden )
// System.out.println("Es exisitiert kein Roboter mit der Seriennummer " + id " .");
// else
loop: loop:
while (true) { while (true) {
System.out.println("Was möchten Sie mit Ihrem Roboter tun?"); System.out.println("Was möchten Sie mit Ihrem Roboter tun?");
@ -108,7 +118,7 @@ private void menu() {
} }
private void robotStatus(int id) { private void robotStatus(int id) {
boolean status = RobotFactory.powerStatus(id); boolean status = fs.powerStatus(id);
if (status == true) if (status == true)
System.out.println("Der Roboter ist angeschaltet."); System.out.println("Der Roboter ist angeschaltet.");
else else
@ -116,7 +126,7 @@ private void menu() {
} }
private void onoffbutton(int id) { private void onoffbutton(int id) {
boolean status = RobotFactory.triggerPower(id); boolean status = fs.triggerPower(id);
if (status == true) if (status == true)
System.out.println("Der Roboter wurde eingeschaltet."); System.out.println("Der Roboter wurde eingeschaltet.");
else else
@ -125,16 +135,52 @@ private void menu() {
private void robotSpeak(int id) { private void robotSpeak(int id) {
ArrayList<Integer> arrayNumbers = new ArrayList<>();
boolean next = true;
System.out.println("Um den Robotersprechen zu lassen, müssen Sie eine beliebig lange Folge von ganzen Zahlen angeben");
System.out.println();
System.out.println("Geben Sie die 1. Zahl Ihrer Folge ein.");
int num = Integer.parseInt(sc.nextLine());
arrayNumbers.add(num);
int i = 2;
while (next) {
System.out.println("Geben Sie die " + i + ". Zahl Ihrer Folge ein." );
int numNext = Integer.parseInt(sc.nextLine());
System.out.println("Wenn Sie eine weiter Zahl eingeben möchten, wählen Sie (1). Wenn Sie die Eingabe beenden möchten (2).");
int election = Integer.parseInt(sc.nextLine());
if (election == 1) {
i++;
next = true;
}
else {
next = false;
int [] numbers = arrayNumbers.stream().mapToInt(j -> j).toArray();
String output;
// try {
// output = fs. hier muss noch eine Verknüpfung zur sprechmethode in Factory System rein
// }
}
}
} }
private void lastError(int id) { private void lastError(int id) {
System.out.println(fs.robotBlackbox(id));
} }
private void robotData(int id) { private void robotData(int id) {
System.out.println(fs.robotInfo(id));
} }
} }