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