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); + } +}