generated from hummel/Bank-System
Kommentierung von FactorySystem und UI
parent
97287d2deb
commit
459977389c
|
@ -1,49 +1,37 @@
|
|||
package tpe.exceptions.roboter;
|
||||
|
||||
//import java.util.*;
|
||||
|
||||
import tpe.exceptions.RobotException;
|
||||
import tpe.exceptions.RobotIllegalStateException;
|
||||
import tpe.exceptions.RobotMagicValueException;
|
||||
|
||||
public class C3PO extends Robots{
|
||||
|
||||
public class C3PO extends Robots {
|
||||
|
||||
RobotType robotType;
|
||||
// private RobotException lastException;
|
||||
// private String name;
|
||||
// private boolean powerSwitch;
|
||||
|
||||
private int id;
|
||||
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
|
||||
public C3PO(String name, int id) {
|
||||
super(name);
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
robotType = RobotType.C3PO;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@Override
|
||||
public int[] think(int[] zahlen) throws RobotIllegalStateException, RobotMagicValueException {
|
||||
if(!isPowerOn())
|
||||
{
|
||||
if (!isPowerOn()) {
|
||||
throw new RobotIllegalStateException("Der Roboter ist ausgeschaltet!", this.getName());
|
||||
}
|
||||
else if(checkRobotMagicValueException(zahlen)==true)
|
||||
{
|
||||
throw new RobotMagicValueException("Zahl 42 kann nicht verarbeitet werden!",this.getName());
|
||||
}
|
||||
else {
|
||||
} else if (checkRobotMagicValueException(zahlen) == true) {
|
||||
throw new RobotMagicValueException("Zahl 42 kann nicht verarbeitet werden!", this.getName());
|
||||
} else {
|
||||
int z;
|
||||
|
||||
|
||||
for (int i = 1; i < zahlen.length; i++) {
|
||||
z = zahlen[i];
|
||||
int k = i;
|
||||
|
||||
|
||||
while (k > 0 && zahlen[k - 1] < z) {
|
||||
zahlen[k] = zahlen[k - 1];
|
||||
k--;
|
||||
|
@ -51,10 +39,9 @@ public class C3PO extends Robots{
|
|||
zahlen[k] = z;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return zahlen;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public RobotType getRobotType() {
|
||||
return this.robotType;
|
||||
|
@ -62,7 +49,7 @@ public class C3PO extends Robots{
|
|||
|
||||
@Override
|
||||
public int getId() {
|
||||
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
|
|
|
@ -18,57 +18,116 @@ public class FactorySystem {
|
|||
this.rf = new RobotFactory(factoryName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Methode entscheidet, ob ein R2D2 oder ein C3PO erstellt wird
|
||||
*
|
||||
* @param select
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
public int constructRobot(int select, String name) {
|
||||
if (select == 1) {
|
||||
int id = rf.constructRobot(RobotType.R2D2, name);
|
||||
return id;
|
||||
} else {
|
||||
} else {
|
||||
int id = rf.constructRobot(RobotType.C3PO, name);
|
||||
return id;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Schaltet Roboter an
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public boolean triggerPower(int id) {
|
||||
return rf.triggerPower(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt den Satus des Roboters an
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public boolean powerStatus(int id) {
|
||||
return rf.powerStatus(id);
|
||||
}
|
||||
|
||||
// public String robotInfo(int id) {
|
||||
// return rf.robotInfo(id).toString();
|
||||
// }
|
||||
|
||||
/**
|
||||
* Gibt die Informationen des Roboters aus
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public String robotInfo(int id) {
|
||||
return rf.robotInfo(id).toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Wirft die letzte Fehlermeldung zurück
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public RobotException robotBlackbox(int id) {
|
||||
return rf.robotBlackbox(id); // Bei Rückgabe von null gab es noch keinen Fehler
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt dem Roboter Zugriff auf think und speak methode
|
||||
*
|
||||
* @param id
|
||||
* @param zahlen
|
||||
* @return
|
||||
* @throws RobotException
|
||||
*/
|
||||
public String robotInstructions(int id, int[] zahlen) throws RobotException {
|
||||
return rf.robotInstructions(id, zahlen);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bibt die Anzahl der Roboter zurück
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public int robotStockSize() {
|
||||
return rf.robotStockSize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft ob Roboter vorhanden ist
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public boolean containsRobot(int id) {
|
||||
return rf.containsRobot(id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Überprüft den Namen der Fabrik
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getFName() {
|
||||
return rf.getFactoryName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt alle gespeicherten Roboter zurück
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String[] getRobotStock() {
|
||||
Collection<Robots> robotStock = rf.getRobotStock();
|
||||
String[] liste = new String[robotStock.size()];
|
||||
|
||||
int i = 0;
|
||||
for (Robots r : robotStock) {
|
||||
liste[i++] = r.toString();
|
||||
liste[i++] = r.toString();
|
||||
}
|
||||
|
||||
return liste;
|
||||
|
|
|
@ -43,6 +43,13 @@ int[] testZahlen2= {1,4,3,41,78,20};
|
|||
|
||||
@Test
|
||||
void robotInstructions() throws RobotException {
|
||||
/**
|
||||
* 1. Test Roboter soll sprechen ist aber ausgeschaltet
|
||||
* 2. Roboter ist angeschaltet, kommt aber mit der 42 nicht zu Recht
|
||||
* 3. Roboter C3P0 wirft Zahlenfolge absteigend aus
|
||||
* 4. Roboter R2D2 wirft Zahlenfolge aufsteigend aus
|
||||
*/
|
||||
|
||||
RobotIllegalStateException thrownState = Assertions.assertThrows(RobotIllegalStateException.class,() -> fs.robotInstructions(testid,testZahlen2));
|
||||
assertEquals(thrownState.getMessage(),"Robotname-Testname: Der Roboter ist ausgeschaltet!");
|
||||
|
||||
|
@ -57,6 +64,7 @@ int[] testZahlen2= {1,4,3,41,78,20};
|
|||
|
||||
@Test
|
||||
void robotBlackBox() {
|
||||
|
||||
fs.triggerPower(testid);
|
||||
RobotMagicValueException thrownValue=Assertions.assertThrows(RobotMagicValueException.class,() -> fs.robotInstructions(testid,testZahlen1));
|
||||
assertEquals(thrownValue.getMessage(),fs.robotBlackbox(testid));
|
||||
|
|
|
@ -36,7 +36,9 @@ public class UI {
|
|||
System.out.println();
|
||||
|
||||
switch (input) {
|
||||
case 1: showRobots(); break;
|
||||
case 1:
|
||||
showRobots();
|
||||
break;
|
||||
case 2:
|
||||
buildRobot();
|
||||
break;
|
||||
|
@ -52,7 +54,10 @@ public class UI {
|
|||
}
|
||||
}
|
||||
|
||||
private void showRobots() {
|
||||
/**
|
||||
* Zeigt alle erstellten Roboter an
|
||||
*/
|
||||
private void showRobots() {
|
||||
String[] robots = fs.getRobotStock();
|
||||
if (robots.length > 0) {
|
||||
System.out.println("Folgende Roboter sind verfügbar:");
|
||||
|
@ -64,13 +69,9 @@ public class UI {
|
|||
}
|
||||
}
|
||||
|
||||
// private void showRobots() {
|
||||
//
|
||||
// System.out.println("Folgende Roboter wurden bereits erstellt: ");
|
||||
//
|
||||
// // Seriennummer, Typ und Name aller Roboter soll aufgelistet werden
|
||||
// }
|
||||
|
||||
/**
|
||||
* Gibt dem Nutzer die Möglichkeit C3PO oder R2D2 zu bauen
|
||||
*/
|
||||
private void buildRobot() {
|
||||
String name = null;
|
||||
|
||||
|
@ -115,6 +116,10 @@ public class UI {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Nutzer kann durch die EIngabe der Seriennummer den Roboter aussuchen, der
|
||||
* genutzt werden soll
|
||||
*/
|
||||
private void choseRobot() {
|
||||
|
||||
System.out.println("Geben Sie die Seriennummer des Roboters ein, mit dem Sie arbeiten m<>chten.");
|
||||
|
@ -123,44 +128,44 @@ public class UI {
|
|||
int id = Integer.parseInt(sc.nextLine());
|
||||
System.out.println();
|
||||
|
||||
// if (id ist nicht vorhanden )
|
||||
// System.out.println("Es exisitiert kein Roboter mit der Seriennummer " + id " .");
|
||||
// else
|
||||
if (!fs.containsRobot(id))
|
||||
System.out.println("Es exisitiert kein Roboter mit der Seriennummer " + id + " .");
|
||||
else
|
||||
|
||||
loop: while (true) {
|
||||
System.out.println("Was m<EFBFBD>chten Sie mit Ihrem Roboter tun?");
|
||||
System.out.println("1 -> Zustand des Roboters");
|
||||
System.out.println("2 -> AN oder Aus schalten");
|
||||
System.out.println("3 -> Roboter spricht");
|
||||
System.out.println("4 -> Letzte Fehlermeldung auslesen"); // Haben bzw. brauchen wir solch eine Funktion
|
||||
// System.out.println("5 -> Daten des Roboters abrufen");
|
||||
System.out.println("6 -> Zur<EFBFBD>ck ins Hauptmen<65>");
|
||||
loop: while (true) {
|
||||
System.out.println("Was m�chten Sie mit Ihrem Roboter tun?");
|
||||
System.out.println("1 -> Zustand des Roboters");
|
||||
System.out.println("2 -> AN oder Aus schalten");
|
||||
System.out.println("3 -> Roboter spricht");
|
||||
System.out.println("4 -> Letzte Fehlermeldung auslesen"); // Haben bzw. brauchen wir solch eine Funktion
|
||||
System.out.println("5 -> Daten des Roboters abrufen");
|
||||
System.out.println("6 -> Zur�ck ins Hauptmen�");
|
||||
|
||||
System.out.print("> ");
|
||||
int input = Integer.parseInt(sc.nextLine());
|
||||
System.out.print("> ");
|
||||
int input = Integer.parseInt(sc.nextLine());
|
||||
|
||||
switch (input) {
|
||||
case 1:
|
||||
robotStatus(id);
|
||||
break;
|
||||
case 2:
|
||||
onoffbutton(id);
|
||||
break;
|
||||
case 3:
|
||||
robotSpeak(id);
|
||||
break;
|
||||
case 4:
|
||||
lastError(id);
|
||||
break;
|
||||
case 5:
|
||||
robotData(id);
|
||||
break;
|
||||
case 6:
|
||||
break loop;
|
||||
}
|
||||
|
||||
switch (input) {
|
||||
case 1:
|
||||
robotStatus(id);
|
||||
break;
|
||||
case 2:
|
||||
onoffbutton(id);
|
||||
break;
|
||||
case 3:
|
||||
robotSpeak(id);
|
||||
break;
|
||||
case 4:
|
||||
lastError(id);
|
||||
break;
|
||||
// case 5:
|
||||
// robotData(id);
|
||||
// break;
|
||||
case 6:
|
||||
break loop;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -176,6 +181,11 @@ public class UI {
|
|||
System.out.println("Der Roboter ist ausgeschaltet.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Schaltet den Roboter ein oder aus
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
private void onoffbutton(int id) {
|
||||
boolean status = fs.triggerPower(id);
|
||||
if (status == true)
|
||||
|
@ -186,6 +196,12 @@ public class UI {
|
|||
System.out.println();
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Roboter kann, nachdem ihm eine Zahlenfolge gegeben wurde, diese je nach
|
||||
* Typ verarbeiten und zurückgeben
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
private void robotSpeak(int id) {
|
||||
|
||||
ArrayList<Integer> arrayNumbers = new ArrayList<>();
|
||||
|
@ -229,13 +245,23 @@ public class UI {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt die letzte Fehlermeldung des Roboters zurück
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
private void lastError(int id) {
|
||||
System.out.println(fs.robotBlackbox(id));
|
||||
|
||||
}
|
||||
|
||||
// private void robotData(int id) {
|
||||
// System.out.println(fs.robotInfo(id));
|
||||
// }
|
||||
/**
|
||||
* Gibt die Informationen eines Roboters zurück
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
private void robotData(int id) {
|
||||
System.out.println(fs.robotInfo(id));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue