diff --git a/.idea/Robot_Factory_PR.iml b/.idea/Robot_Factory_PR.iml
index b107a2d..dce5887 100644
--- a/.idea/Robot_Factory_PR.iml
+++ b/.idea/Robot_Factory_PR.iml
@@ -7,5 +7,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Main.java b/Main.java
index e66dfb5..60da185 100644
--- a/Main.java
+++ b/Main.java
@@ -1,5 +1,19 @@
+import domain.C3PO;
+import roboter.exceptions.RobotException;
+
public class Main {
public static void main(String[] args) {
+ //just some testing
+ /*C3PO Herbert = new C3PO(0, "Herbert");
+ int[] input = {6,5,4,3,2,1};
+ Herbert.triggerPowerSwitch();
+ try{
+ String asString = Herbert.speak(input);
+ System.out.println(asString);
+ }catch(RobotException re){
+ System.out.println(re);
+ }
+ */
}
}
diff --git a/domain/C3PO.java b/domain/C3PO.java
index 9039fcb..fc35f48 100644
--- a/domain/C3PO.java
+++ b/domain/C3PO.java
@@ -1,15 +1,8 @@
package domain;
public class C3PO extends RobotBasics {
-
- private int id;
- private String name;
- private boolean power;
-
public C3PO(int id, String name){
- this.id = id;
- this.name = name;
- power = false;
+ super(id, name);
}
}
diff --git a/domain/C3POTest.java b/domain/C3POTest.java
new file mode 100644
index 0000000..49c1359
--- /dev/null
+++ b/domain/C3POTest.java
@@ -0,0 +1,47 @@
+package domain;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.*;
+
+class C3POTest {
+
+ C3PO Herbert;
+ int id = 0;
+ String name = "Herbert";
+
+ @BeforeEach
+ void setup(){
+ Herbert = new C3PO(id, name);
+ }
+
+
+ //Tests for basic functions
+ @Test
+ void getId() {
+
+ assertEquals(id, Herbert.getId());
+ }
+
+ @Test
+ void getName() {
+ assertEquals(name, Herbert.getName());
+ assertEquals(name,
+ Herbert.getName());
+ }
+
+ @Test
+ void triggerPowerSwitch() {
+ Herbert.triggerPowerSwitch();
+ assertTrue(Herbert.isPowerOn());
+ }
+
+ @Test
+ void isPowerOn() {
+ assertFalse(Herbert.isPowerOn());
+ Herbert.triggerPowerSwitch();
+ assertTrue(Herbert.isPowerOn());
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/domain/R2D2.java b/domain/R2D2.java
index ea3dcf5..c810ee3 100644
--- a/domain/R2D2.java
+++ b/domain/R2D2.java
@@ -1,19 +1,14 @@
package domain;
public class R2D2 extends RobotBasics {
- private int id;
- private String name;
- private boolean power;
-
/**
* Constructor
* @param id> int
* @param name> String
*/
public R2D2(int id, String name){
- this.id = id;
- this.name = name;
- power = false;
+ super(id, name);
+
}
}
diff --git a/domain/R2D2Test.java b/domain/R2D2Test.java
index d544f21..3b1c87c 100644
--- a/domain/R2D2Test.java
+++ b/domain/R2D2Test.java
@@ -20,7 +20,7 @@ class R2D2Test {
//Tests for basic functions
@Test
void getId() {
- assertEquals(0, Herbert.getId());
+ assertEquals(id, Herbert.getId());
}
@Test
diff --git a/domain/Robot.java b/domain/Robot.java
index 35f34e2..4cbec0f 100644
--- a/domain/Robot.java
+++ b/domain/Robot.java
@@ -1,6 +1,9 @@
/* (c) 2012 Thomas Smits */
//package tpe.exceptions.roboter;
package domain;
+
+import roboter.RobotInstructions;
+
/**
* Interface für Roboter.
*
diff --git a/domain/RobotBasics.java b/domain/RobotBasics.java
index 08fbcc8..6677497 100644
--- a/domain/RobotBasics.java
+++ b/domain/RobotBasics.java
@@ -1,10 +1,18 @@
package domain;
-public abstract class RobotBasics implements Robot {
+import roboter.exceptions.RobotException;
+import roboter.exceptions.RobotIllegalStateException;
+
+public class RobotBasics implements Robot {
private int id;
private String name;
private boolean power;
+ public RobotBasics(int id, String name){
+ this.id = id;
+ this.name = name;
+ this.power = false;
+ }
/**
* @see domain.RobotControl
*/
@@ -26,7 +34,11 @@ public abstract class RobotBasics implements Robot {
*/
@Override
public void triggerPowerSwitch() {
- toggle(power);
+ if(power == false){
+ power = true;
+ }else{
+ power = false;
+ }
}
/**
@@ -38,13 +50,26 @@ public abstract class RobotBasics implements Robot {
}
/**
- * @see domain.RobotControl
+ * @see roboter.RobotInstructions
*/
- public static void toggle(boolean b){
- if(b == false){
- b = true;
+ @Override
+ public String speak(int[] zahlen) throws RobotException {
+ if(power == true){
+ String array = "";
+ for(int i = 0; i < zahlen.length; i++){
+ array += zahlen[i] + " ";
+ }
+ return array;
}else{
- b = false;
+ throw new RobotIllegalStateException("The Robot is turned off.");
}
+
+ }
+ /**
+ * @see roboter.RobotInstructions
+ */
+ @Override
+ public int[] think(int[] zahlen) throws RobotException {
+ return new int[0];
}
}
diff --git a/makefile b/makefile
index 6ba4c6b..4884dfb 100644
--- a/makefile
+++ b/makefile
@@ -14,5 +14,5 @@ update_all:
update_domain:
git add domain/
- git commit -m "Updated domain. Further erxplanation in README"
+ git commit -m "Updated domain. Further explanation in README"
git push -u origin main
\ No newline at end of file
diff --git a/out/production/Robot_Factory_PR/.idea/.gitignore b/out/production/Robot_Factory_PR/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/out/production/Robot_Factory_PR/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/out/production/Robot_Factory_PR/.idea/Robot_Factory_PR.iml b/out/production/Robot_Factory_PR/.idea/Robot_Factory_PR.iml
new file mode 100644
index 0000000..dce5887
--- /dev/null
+++ b/out/production/Robot_Factory_PR/.idea/Robot_Factory_PR.iml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/Robot_Factory_PR/.idea/misc.xml b/out/production/Robot_Factory_PR/.idea/misc.xml
new file mode 100644
index 0000000..d15472f
--- /dev/null
+++ b/out/production/Robot_Factory_PR/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/Robot_Factory_PR/.idea/modules.xml b/out/production/Robot_Factory_PR/.idea/modules.xml
new file mode 100644
index 0000000..6e7f4ca
--- /dev/null
+++ b/out/production/Robot_Factory_PR/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/Robot_Factory_PR/.idea/uiDesigner.xml b/out/production/Robot_Factory_PR/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/out/production/Robot_Factory_PR/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/Robot_Factory_PR/.idea/vcs.xml b/out/production/Robot_Factory_PR/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/out/production/Robot_Factory_PR/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/Robot_Factory_PR/Main.class b/out/production/Robot_Factory_PR/Main.class
new file mode 100644
index 0000000..47f4d16
Binary files /dev/null and b/out/production/Robot_Factory_PR/Main.class differ
diff --git a/out/production/Robot_Factory_PR/README.md b/out/production/Robot_Factory_PR/README.md
new file mode 100644
index 0000000..dc152df
--- /dev/null
+++ b/out/production/Robot_Factory_PR/README.md
@@ -0,0 +1,276 @@
+# Robot Factory for PR2
+
+* [Teilnehmer](#teilnehmer)
+
+* [Overview](#overview)
+ * [Packages](#packages)
+ * [Sidefiles](#sidefiles)
+* [Aufgabe](#aufgabe)
+
+
+## Teilnehmer:
+
+- Philipp Kotte Matr. : 2211945;
+- Cedric Hermann Matr. : 2210943;
+- XXXXXXX XXXXX Matr. : XXXXXXX;
+
+# Overview
+
+## Packages
+* [Domain](#domain)
+ * [R2D2](#-klasse-r2d2-)
+ * [R2D2Test](#-testklasse-r2d2test-)
+ * [C3P0](#-klasse-c3po-)
+ * [Robot](#-interface-robot-)
+ * [RobotControl](#-interface-robotcontrol-)
+ * [RobotControl](#-interface-robotinstructions-)
+* [Facade](#facade)
+ * [Factrory](#-klasse-factory-)
+* [Infrastructure](#infratructure)
+ * [Persistenz](#-klasse-persistenz-)
+* [UI](#ui)
+
+## Sidefiles
+* [Main](#-klasse-main-)
+* [makefile](#-makefile-for-Git-updates-)
+
+## Domain
+
Klasse R2D2
+
+### Variables:
+```
+private int id
+private String name
+private boolean power
+```
+___
+
+### Methods:
+```
+public R2D2():R2D2
+//implemented from interface Robotcontrol
+public getId():int
+public getName():String
+public triggerPowerSWitch():void
+public isPowerOn():boolean
+```
+
+ TestKlasse R2D2Test
+
+### Variables:
+```
+public int id
+public String name
+public R2D2 Herbert
+```
+___
+
+### Methods:
+```
+@BeforeEach
+setup():void
+
+@Test
+getId():void
+getName():void
+triggerPowerSwitch():void
+iPowerOn():void
+
+```
+
+ Klasse C3PO
+
+
+### Variables:
+```
+--not set yet--
+```
+___
+
+### Methods:
+```
+--not set yet--
+```
+
+ Interface Robot
+
+### Methods:
+```
+--not set yet--
+```
+
+
+ Interface RobotControl
+
+### Methods:
+```
+--not set yet--
+```
+
+ Interface RobotInstructions
+
+### Methods:
+```
+--not set yet--
+```
+
+
+## facade
+
+ Klasse Factory
+
+### Variables:
+```
+--not set yet--
+```
+___
+
+### Methods:
+```
+--not set yet--
+```
+
+## Infrastructure
+
+ Klasse Persistenz
+
+### Variables:
+```
+--not set yet--
+```
+___
+
+### Methods:
+```
+--not set yet--
+```
+
+## UI
+
+ Klasse UI
+
+### Variables:
+```
+--not set yet--
+```
+___
+
+### Methods:
+```
+--not set yet--
+```
+
+ Klasse Main
+
+### Variables:
+```
+--not set yet--
+```
+___
+
+### Methods:
+```
+--not set yet--
+```
+
+ makefile for Git updates
+
+### Variables:
+```
+--not set yet--
+```
+___
+
+### Methods:
+```
+update_readme:
+update_make:
+update_all:
+```
+
+
+## Aufgabe
+
+PR2-Aufgabe Roboterfabrik
+(ursprüngliche Autoren: Sebastian Tschirpke und Steffen Hennhöfer; mit Erweiterungen von Oliver Hummel)
+Nach Abschluss Ihres Bachelorstudiums sind Sie auf Jobsuche. In einem Zeitungsartikel
+lesen Sie, dass die Firma ASDF123-Roboter AG, junge und kreative Mitarbeiter für den
+Aufbau einer Roboterfabrik sucht. Von der Stellenausschreibung ganz hingerissen, machen
+Sie sich sofort auf den Weg und reichen Ihre Bewerbungsunterlagen ein. Tatsächlich
+meldet sich die Firma kurz darauf bei Ihnen und lädt Sie zu einem Bewerbungsgespräch ein.
+Für Sie läuft scheinbar alles perfekt und Sie können es kaum erwarten Ihren zukünftigen
+Arbeitgeber von Ihren Qualitäten zu überzeugen. Jedoch zeigt dieser keinerlei Interesse an
+Ihren Zeugnissen, sondern knüpft vielmehr Ihre Einstellung an die Lösung folgender Aufgabe
+für die Sie Klassen auf der Domänenebene implementieren und testen sollen:
+Die Firma möchte eine neue Roboterfabrik aufbauen und benötigt dazu ein Softwaremodell,
+welches den Produktionsprozess und die Roboter simuliert. Es handelt sich nur um eine
+einzige Fabrik mit einer Fabrikmethode, die flexibel auf Bestellungen der Kunden reagieren
+kann. Die Roboterfabrik bietet ihren Kunden zunächst zwei verschiedene Modelle an, beide
+aus der Star-Wars-Produktreihe: die Modelle heißen C3PO und R2D2 und sollen gemeinsam
+genutzte Funktionalität von einer Superklasse erben. Alle Roboter haben eine einfache
+Schnittstelle Robot, mit der sie gesteuert werden können. Diese Schnittstelle besteht insgesamt
+aus den folgenden Dateien:
+
+
+
+* Robot.java
+* RobotControl.java
+* RobotInstructions.java
+
+Die Fabrik ist von ihren Fertigungsanlagen her so konzipiert, dass jeder Roboter einzeln
+gefertigt wird. Übergeben wird lediglich das gewünschte Roboter-Modell und der Name und
+schon erhält der Kunde den von ihm gewünschten Roboter (also in der Simulation eine Instanz).
+Der Unterschied zwischen den angebotenen Modellen liegt in der Ausführung der Befehle aus
+dem Interface RobotInstructions. Während R2D2 Arrays immer aufsteigend sortiert und bei der
+Umwandlung in ein Array den Inhalt durch Kommas trennt (z.B. 1, 2, 3, 4, 5, 6), sortiert C3PO
+Arrays stets absteigend und wandelt deren Inhalt in einen String mit Semikolon als Trennzeichen
+um (z.B. 6; 5; 4; 3; 2; 1). R2D2 soll für die Sortierung der Daten einen selbst implementierten
+SelectionSort-Algorithmus verwenden, C3PO InsertionSort. Die Zusammenstellung des Strings für
+die Rückgabe soll in einer privaten Methode der Roboter- Basisklasse mit Hilfe eines Streams und
+Lambda-Ausdrücken erfolgen.
+Programmieren Sie zwei Klassen R2D2 und C3PO, die beide das Interface Robot implementieren.
+Lesen Sie bitte sorgfältig die Dokumentation der Interfaces, damit Sie die beschriebene Semantik
+in Ihrer Implementierung einhalten. Die Seriennummern der R2D2- Modelle bewegen sich im Bereich
+von 0–9999, die der C3PO-Modelle von 10000–19999. Schreiben Sie ferner die in den Interfaces
+referenzierten Klassen für die Ausnahmen. Sorgen Sie dafür, dass die Ausnahmen den Namen des
+Roboters tragen, in dem sie entstanden sind und dass man diesen Namen über die Methode getRobotName()
+wieder auslesen kann.
+Auch für die Implementierung der Exceptions kann daher eine gemeinsame Superklasse hilfreich sein.
+Entwickeln Sie eine Klasse RobotFactory mit deren Hilfe man Instanzen der beiden Roboter- Typen
+erzeugen kann. Eine Enumeration mit dem Namen RobotType dient dazu, bei der Erzeugung anzugeben,
+ob man einen R2D2- oder einen C3PO-Roboter haben möchte.
+Vergessen Sie nicht, dass jeder Roboter eine Seriennummer aus dem jeweiligen Bereich benötigt und
+dass er bei der Erzeugung seinen unveränderlichen Namen bekommt. Verbergen Sie die Implementierung
+der Roboter vor dem Verwender und erlauben Sie nur Zugriff auf die Factory, die Interfaces und
+die Ausnahmen. Wählen Sie entsprechende Pakete gemäß ihrem Schema, um dies zu realisieren.
+Zusätzlich zu den beiden produzierten Roboter-Modellen R2D2 und C3PO steht in der Firma noch ein
+alter Nexus-6-Roboter mit dem Namen “Pris“ (Seriennummer 19281982)herum, der leider seit einer
+Begegnung mit einem Blade-Runner irreparabel defekt ist und nicht eingeschaltet werden kann (man kann
+den Schalter zwar drücken, dies hat aber keine Wirkung). Da es nur dieses eine Exemplar gibt, können
+auch keine weiteren Nexus-6- Modelle hergestellt werden. Implementieren Sie daher den Nexus-6-Roboter
+(Klassenname Nexus6) als Singleton. Beachten Sie, dass die speak- und think-Methoden nicht funktionieren
+sollen, sondern grundsätzlich eine Ausnahme Robot"-Illegal"-State"-Exception werfen.
+Schreiben Sie automatisierte JUnit-Tests mit denen Sie die korrekte Funktionsweise der Implementierungen
+und der Factory-Klasse überprüfen. Denken Sie daran, auch die Ausnahmen zu testen.
+Angenommen, Ihre Firma möchte eine weitere Produktlinie eröffnen und in Zukunft auch noch T1000-Roboter
+herstellen, die natürlich auch das Robot-Interface implementieren: Welche Änderungen müssten Sie an Ihrem
+Projekt durchführen? Sie brauchen keine Implementierung dafür zu erstellen, legen Sie dafür bitte eine
+Textdatei in Ihr Projekt, in der Sie die notwendigen Erweiterungen und evtl. Änderungen kurz erläutern.
+* Mit Ihrer Implementierung sollten folgende Begrifflichkeiten abgedeckt sein:
+ * Singleton-Pattern,
+ * Factory-Pattern,
+ * Exceptions,
+ * Interfaces,
+ * abstrakte Klassen,
+ * JUnit- Tests,
+ * Enumerationen,
+ * Sortieralgorithmen,
+ * Streams & Lambdas.
+* Achten Sie bei Ihrer Implementierung auf die Konsistenz der Sprache (Englisch/Deutsch).
+* Kommentieren Sie Ihre Methoden ausführlich mit Javadoc-Kommentaren,
+ * wie in den Interfaces gezeigt (googlen Sie ggf. nach weiteren Details dafür).
+* Bei der Implementierung von Methoden aus den Interfaces, dürfen Sie mit @see... auf deren Javadocs verweisen und müssen die Dokumentation nicht duplizieren.
+* Sie müssen kein UML-Diagramm anfertigen, können dies aber gerne tun.
+* Testen Sie Ihre Implementierung möglichst umfangreich. Wir werden es auf jeden Fall tun. !
+* Nutzen Sie für die gemeinsame Arbeit an der Implementierung ein Git-Repository und nutzen Sie regelmäßig.
+* Es müssen von allen Team-Mitgliedern jeweils mindestens fünf Commits mit substanziellem Inhalt auf den main-Branch gepusht werden.
diff --git a/out/production/Robot_Factory_PR/domain/C3PO.class b/out/production/Robot_Factory_PR/domain/C3PO.class
new file mode 100644
index 0000000..24cc591
Binary files /dev/null and b/out/production/Robot_Factory_PR/domain/C3PO.class differ
diff --git a/out/production/Robot_Factory_PR/domain/C3POTest.class b/out/production/Robot_Factory_PR/domain/C3POTest.class
new file mode 100644
index 0000000..0788cbc
Binary files /dev/null and b/out/production/Robot_Factory_PR/domain/C3POTest.class differ
diff --git a/out/production/Robot_Factory_PR/domain/R2D2.class b/out/production/Robot_Factory_PR/domain/R2D2.class
new file mode 100644
index 0000000..d4c6df5
Binary files /dev/null and b/out/production/Robot_Factory_PR/domain/R2D2.class differ
diff --git a/out/production/Robot_Factory_PR/domain/R2D2Test.class b/out/production/Robot_Factory_PR/domain/R2D2Test.class
new file mode 100644
index 0000000..e4d0a82
Binary files /dev/null and b/out/production/Robot_Factory_PR/domain/R2D2Test.class differ
diff --git a/out/production/Robot_Factory_PR/domain/Robot.class b/out/production/Robot_Factory_PR/domain/Robot.class
new file mode 100644
index 0000000..dc6d4b3
Binary files /dev/null and b/out/production/Robot_Factory_PR/domain/Robot.class differ
diff --git a/out/production/Robot_Factory_PR/domain/RobotBasics.class b/out/production/Robot_Factory_PR/domain/RobotBasics.class
new file mode 100644
index 0000000..ea9e091
Binary files /dev/null and b/out/production/Robot_Factory_PR/domain/RobotBasics.class differ
diff --git a/out/production/Robot_Factory_PR/domain/RobotControl.class b/out/production/Robot_Factory_PR/domain/RobotControl.class
new file mode 100644
index 0000000..1859193
Binary files /dev/null and b/out/production/Robot_Factory_PR/domain/RobotControl.class differ
diff --git a/out/production/Robot_Factory_PR/facade/Factory.class b/out/production/Robot_Factory_PR/facade/Factory.class
new file mode 100644
index 0000000..c49391e
Binary files /dev/null and b/out/production/Robot_Factory_PR/facade/Factory.class differ
diff --git a/out/production/Robot_Factory_PR/infrastructure/Persistenz.class b/out/production/Robot_Factory_PR/infrastructure/Persistenz.class
new file mode 100644
index 0000000..f090dbc
Binary files /dev/null and b/out/production/Robot_Factory_PR/infrastructure/Persistenz.class differ
diff --git a/out/production/Robot_Factory_PR/makefile b/out/production/Robot_Factory_PR/makefile
new file mode 100644
index 0000000..4884dfb
--- /dev/null
+++ b/out/production/Robot_Factory_PR/makefile
@@ -0,0 +1,18 @@
+
+update_readme:
+ git add README.md
+ git commit -m "updated README"
+ git push -u origin main
+update_make:
+ git add makefile
+ git commit -m "updated makefile"
+ git push -u origin main
+update_all:
+ git add --all
+ git commit -m "Updated everything. Further explanation in README"
+ git push -u origin main
+
+update_domain:
+ git add domain/
+ git commit -m "Updated domain. Further explanation in README"
+ git push -u origin main
\ No newline at end of file
diff --git a/out/production/Robot_Factory_PR/roboter/RobotInstructions.class b/out/production/Robot_Factory_PR/roboter/RobotInstructions.class
new file mode 100644
index 0000000..c7d67eb
Binary files /dev/null and b/out/production/Robot_Factory_PR/roboter/RobotInstructions.class differ
diff --git a/out/production/Robot_Factory_PR/roboter/exceptions/RobotException.class b/out/production/Robot_Factory_PR/roboter/exceptions/RobotException.class
new file mode 100644
index 0000000..9dbb2e2
Binary files /dev/null and b/out/production/Robot_Factory_PR/roboter/exceptions/RobotException.class differ
diff --git a/out/production/Robot_Factory_PR/roboter/exceptions/RobotIllegalStateException.class b/out/production/Robot_Factory_PR/roboter/exceptions/RobotIllegalStateException.class
new file mode 100644
index 0000000..6939325
Binary files /dev/null and b/out/production/Robot_Factory_PR/roboter/exceptions/RobotIllegalStateException.class differ
diff --git a/out/production/Robot_Factory_PR/roboter/exceptions/RobotMagicValueException.class b/out/production/Robot_Factory_PR/roboter/exceptions/RobotMagicValueException.class
new file mode 100644
index 0000000..bf585d7
Binary files /dev/null and b/out/production/Robot_Factory_PR/roboter/exceptions/RobotMagicValueException.class differ
diff --git a/out/production/Robot_Factory_PR/ui/UI.class b/out/production/Robot_Factory_PR/ui/UI.class
new file mode 100644
index 0000000..51a0402
Binary files /dev/null and b/out/production/Robot_Factory_PR/ui/UI.class differ
diff --git a/domain/RobotInstructions.java b/roboter/RobotInstructions.java
similarity index 86%
rename from domain/RobotInstructions.java
rename to roboter/RobotInstructions.java
index c56a0de..36e7673 100644
--- a/domain/RobotInstructions.java
+++ b/roboter/RobotInstructions.java
@@ -1,9 +1,9 @@
-//package tpe.exceptions.roboter;
+package roboter;
-//import tpe.exceptions.roboter.exceptions.RobotException;
-//import tpe.exceptions.roboter.exceptions.RobotIllegalStateException;
+import roboter.exceptions.RobotException;
+import roboter.exceptions.RobotIllegalStateException;
//import tpe.exceptions.roboter.exceptions.RobotMagicValueException;
-package domain;
+
/**
* Das Interface repräsentiert den Befehlssatz eines einfachen Roboters.
@@ -35,7 +35,7 @@ public interface RobotInstructions {
* @throws RobotException wenn der Roboter in einem ungültigen Zustand ist,
* oder das Array nicht seinen Vorstellungen entspricht.
*/
- //public String speak(int[] zahlen) throws RobotException;
+ public String speak(int[] zahlen) throws RobotException, RobotIllegalStateException;
/**
* Sortiert ein Array von Zahlen. Die Reihenfolge hängt von dem Typ des
@@ -46,5 +46,5 @@ public interface RobotInstructions {
* @throws RobotException wenn der Roboter in einem ungültigen Zustand ist,
* oder das Array nicht seinen Vorstellungen entspricht.
*/
- //public int[] think(int[] zahlen) throws RobotException;
+ public int[] think(int[] zahlen) throws RobotException;
}
\ No newline at end of file
diff --git a/roboter/exceptions/RobotException.java b/roboter/exceptions/RobotException.java
new file mode 100644
index 0000000..c960076
--- /dev/null
+++ b/roboter/exceptions/RobotException.java
@@ -0,0 +1,8 @@
+package roboter.exceptions;
+
+public class RobotException extends Exception{
+ public RobotException(String errorMessage){
+ super(errorMessage);
+ }
+
+}
diff --git a/roboter/exceptions/RobotIllegalStateException.java b/roboter/exceptions/RobotIllegalStateException.java
new file mode 100644
index 0000000..96dd737
--- /dev/null
+++ b/roboter/exceptions/RobotIllegalStateException.java
@@ -0,0 +1,7 @@
+package roboter.exceptions;
+
+public class RobotIllegalStateException extends RobotException{
+ public RobotIllegalStateException(String errormessage){
+ super(errormessage);
+ }
+}
diff --git a/roboter/exceptions/RobotMagicValueException.java b/roboter/exceptions/RobotMagicValueException.java
new file mode 100644
index 0000000..81ac8be
--- /dev/null
+++ b/roboter/exceptions/RobotMagicValueException.java
@@ -0,0 +1,7 @@
+package roboter.exceptions;
+
+public class RobotMagicValueException extends Exception{
+ public RobotMagicValueException(String errormessage){
+ super(errormessage);
+ }
+}