RoboterFabrik/Roboter/tpe/facade/FactorySystem.java

136 lines
2.5 KiB
Java
Raw Normal View History

2023-01-07 14:15:53 +01:00
package tpe.facade;
2023-01-09 17:59:48 +01:00
import java.util.Collection;
import de.hs_mannheim.informatik.bank.domain.Konto;
import tpe.exceptions.RobotException;
import tpe.exceptions.roboter.C3PO;
import tpe.exceptions.roboter.R2D2;
import tpe.exceptions.roboter.RobotFactory;
import tpe.exceptions.roboter.RobotType;
2023-01-09 17:59:48 +01:00
import tpe.exceptions.roboter.Robots;
2023-01-07 18:48:00 +01:00
public class FactorySystem {
private RobotFactory rf;
RobotType robotType;
public FactorySystem(String factoryName) {
this.rf = new RobotFactory(factoryName);
}
2023-01-09 18:29:56 +01:00
/**
* 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;
2023-01-09 18:29:56 +01:00
} else {
int id = rf.constructRobot(RobotType.C3PO, name);
return id;
}
2023-01-09 18:29:56 +01:00
}
2023-01-09 18:29:56 +01:00
/**
* Schaltet Roboter an
*
* @param id
* @return
*/
public boolean triggerPower(int id) {
return rf.triggerPower(id);
}
2023-01-09 18:29:56 +01:00
/**
* Gibt den Satus des Roboters an
*
* @param id
* @return
*/
public boolean powerStatus(int id) {
return rf.powerStatus(id);
}
2023-01-09 18:29:56 +01:00
/**
* Gibt die Informationen des Roboters aus
*
* @param id
* @return
*/
public String robotInfo(int id) {
return rf.robotInfo(id).toString();
}
2023-01-09 18:29:56 +01:00
/**
* Wirft die letzte Fehlermeldung zur<EFBFBD>ck
*
* @param id
* @return
*/
public RobotException robotBlackbox(int id) {
return rf.robotBlackbox(id); // Bei Rückgabe von null gab es noch keinen Fehler
}
2023-01-09 18:29:56 +01:00
/**
* 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);
}
2023-01-09 18:29:56 +01:00
/**
* Bibt die Anzahl der Roboter zur<EFBFBD>ck
*
* @return
*/
public int robotStockSize() {
return rf.robotStockSize();
}
2023-01-09 18:29:56 +01:00
/**
* Pr<EFBFBD>ft ob Roboter vorhanden ist
*
* @param id
* @return
*/
public boolean containsRobot(int id) {
return rf.containsRobot(id);
}
2023-01-09 18:29:56 +01:00
/**
* <EFBFBD>berpr<EFBFBD>ft den Namen der Fabrik
*
* @return
*/
public String getFName() {
return rf.getFactoryName();
}
2023-01-09 18:29:56 +01:00
/**
* Gibt alle gespeicherten Roboter zur<EFBFBD>ck
*
* @return
*/
2023-01-09 17:59:48 +01:00
public String[] getRobotStock() {
Collection<Robots> robotStock = rf.getRobotStock();
String[] liste = new String[robotStock.size()];
int i = 0;
for (Robots r : robotStock) {
2023-01-09 18:29:56 +01:00
liste[i++] = r.toString();
2023-01-09 17:59:48 +01:00
}
return liste;
}
}