diff --git a/Roboter/tpe/exceptions/roboter/Nexus6.java b/Roboter/tpe/exceptions/roboter/Nexus6.java index 5fce3e6..8252adb 100644 --- a/Roboter/tpe/exceptions/roboter/Nexus6.java +++ b/Roboter/tpe/exceptions/roboter/Nexus6.java @@ -21,26 +21,20 @@ public class Nexus6 extends Robots { } @Override public String speak(int[] zahlen) throws RobotException { - throw new RobotIllegalStateException("Der Roboter ist ausgeschaltet!", this.getName()); + throw new RobotIllegalStateException("Der Nexus6-Roboter: Pris ist ausgeschaltet!", this.getName()); } @Override public int[] think(int[] zahlen) throws RobotException { - throw new RobotIllegalStateException("Der Roboter ist ausgeschaltet!", this.getName()); + throw new RobotIllegalStateException("Der Nexus6-Roboter: Pris ist ausgeschaltet!", this.getName()); } public int getId() { - return id; } - @Override - public RobotException getLastException() { - // TODO Auto-generated method stub - return null; - } public RobotType getRobotType () { return this.robotType; } diff --git a/Roboter/tpe/exceptions/roboter/R2D2.java b/Roboter/tpe/exceptions/roboter/R2D2.java index 9d718a6..4c00494 100644 --- a/Roboter/tpe/exceptions/roboter/R2D2.java +++ b/Roboter/tpe/exceptions/roboter/R2D2.java @@ -8,37 +8,28 @@ import tpe.exceptions.RobotMagicValueException; public class R2D2 extends Robots { RobotType robotType; - private RobotException lastException; - private String name; - private boolean powerSwitch; private int id; StringBuilder sb = new StringBuilder(); - + /** + * Inititalisert R2D2 und weist {@link RobotType} zu + * @param name + * @param id + */ public R2D2(String name,int id) { super(name); this.id=id; this.name = name; robotType= RobotType.R2D2; } + @Override public int getId() { return id; } - - - @Override public int[] think(int[] zahlen) throws RobotException { - 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 { + // Iterate through zahlen from left to right for (int i = 0; i < zahlen.length - 1; i++) { // Set the index of the current smallest element to i @@ -55,9 +46,13 @@ public class R2D2 extends Robots { zahlen[minIndex] = temp; } return zahlen; - } + } + /** + * + * @return Gibt {@link RobotType} zurück + */ public RobotType getRobotType () { return this.robotType; } diff --git a/Roboter/tpe/exceptions/roboter/RobotFactory.java b/Roboter/tpe/exceptions/roboter/RobotFactory.java index e623229..678805a 100644 --- a/Roboter/tpe/exceptions/roboter/RobotFactory.java +++ b/Roboter/tpe/exceptions/roboter/RobotFactory.java @@ -8,12 +8,19 @@ public class RobotFactory { private Robots nexus6=Nexus6.getInstance(); private String factoryName; private HashMap robotStock=new HashMap<>(); - + /** + * RobotFactory() mit Namen
+ * {@link Nexus6} in robotStock-HashMap als Standardmäßiger Roboter eingefügt + */ public RobotFactory(String factoryName) { this.factoryName=factoryName; robotStock.put(nexus6.getId(), nexus6); } - + /** + * constructRobot() konstruiert Roboter mit durch Kunden gewählten Namen und fügt diese in die HashMap ein
+ * Unterscheidung durch {@link RobotType} + * @return Id des erstellten Roboters + */ public int constructRobot(RobotType robotType, String name) { Robots robot; @@ -29,7 +36,11 @@ public class RobotFactory { } } - + /** + * RoboterID wird über Math.random() erstellt entsprechend der Anforderung variiert der Zahlenbereich + * @param value + * @return ID für die in constructRobot() erstellten Roboter + */ private int createIDR2D2(int value) { int randomID = (int) (Math.random()*(value)) ; @@ -48,49 +59,89 @@ public class RobotFactory { } return randomID; } - + /** + * + * @return Gibt den Namen der Fabrik zurück + */ public String getFactoryName() { return factoryName; } - + /** + * Durchsucht die HashMap über Object Key in diesem Fall die Roboter ID + * @param id + * @return Gibt den zur entsprechenden ID gefunden Roboter zurück + */ public Robots getRobot(int id) { return robotStock.get(id); } - + /** + * Schaltet den Roboter an bzw. aus und ruft Methode aus {@link Robots} auf + * @param id + * @return Rückgabe ob Roboter an ist true=an false=aus + */ public boolean triggerPower(int id) { Robots robot=getRobot(id); robot.triggerPowerSwitch(); return robot.powerStatus; } - + /** + * + * @param id + * @return Rückgabe ob Roboter an ist true=an false=aus + */ public boolean powerStatus(int id) { Robots robot=getRobot(id); return robot.powerStatus; } - + /** + * Sucht die Informationen zum über die ID gesuchten Roboter aus der HashMap + * @param id + * @return Gibt die Informationen zum über die ID gesuchten Roboter aus + */ public String robotInfo(int id) { Robots robot=getRobot(id); return robot.toString(); } - + /** + * Ermöglicht Roboter zur jeweiligen ID aus der HashMap zu löschen => Roboter Instanz löschen + * @param id + * @return Bei null wurde kein Roboter zur ID gefunden falls Roboter zurückgegeben wird ist dieser gelöscht + */ public Robots dismantleRobot(int id) { return robotStock.remove(id); } - + /** + * Sucht den Roboter zur ID aus der HashMap und ermittelt über {@link Robots} Funktion die {@link RobotException} + * @param id + * @return Gibt {@link RobotException} zurück + */ public RobotException robotBlackbox(int id) { Robots robot=getRobot(id); return robot.getLastException(); } - + /** + * Ruft die definierten Funktionalitäten aus {@link RobotInstructions} auf + * @param id + * @param zahlen + * @return Ergebnis der Instructions bei Fehler einer {@link RobotException} + * @throws RobotException + */ public String robotInstructions(int id, int[]zahlen) throws RobotException { Robots robot=getRobot(id); return robot.speak(robot.think(zahlen)); } - + /** + * + * @return Gibt die Größe der HashMap zurück + */ public int robotStockSize() { return robotStock.size(); } - + /** + * Prüft ob Roboter mit übergebener ID existiert + * @param id + * @return True=Roboter existier; False=Roboter existiert nicht + */ public boolean containsRobot(int id) { return robotStock.containsKey(id); } diff --git a/Roboter/tpe/exceptions/roboter/Robots.java b/Roboter/tpe/exceptions/roboter/Robots.java index da8cf9c..61b1dbd 100644 --- a/Roboter/tpe/exceptions/roboter/Robots.java +++ b/Roboter/tpe/exceptions/roboter/Robots.java @@ -12,7 +12,10 @@ public abstract class Robots implements Robot{ protected String name; protected RobotException error; protected boolean powerStatus; - + /** + * Legt fest das ein Roboter standardmäßig einen Namen hat und setzt den Power Knopf bei Erstellung auf aus + * @param name + */ public Robots(String name) { this.name = name; this.powerStatus = false; @@ -49,7 +52,6 @@ public abstract class Robots implements Robot{ } return error; } - public String speak(int[] zahlen) throws RobotException { if(powerStatus==false)