RoboterFabrik/Roboter/tpe/facade/FactorySystem.java

136 lines
2.5 KiB
Java

package tpe.facade;
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;
import tpe.exceptions.roboter.Robots;
public class FactorySystem {
private RobotFactory rf;
RobotType robotType;
public FactorySystem(String 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) {
if (select == 1) {
int id = rf.constructRobot(RobotType.R2D2, name);
return id;
} 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);
}
/**
* 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();
}
return liste;
}
}