Compare commits
No commits in common. "main" and "Absteigende_Sortierung" have entirely different histories.
main
...
Absteigend
|
@ -1,6 +1,2 @@
|
||||||
# Robbie-Management-System
|
# Robbie-Management-System
|
||||||
|
|
||||||
Teammitglieder:
|
|
||||||
|
|
||||||
1) Nico Piehl (2211320)
|
|
||||||
2) Cedric Bienert (2210800)
|
|
|
@ -6,6 +6,5 @@
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="src" path="src"/>
|
<classpathentry kind="src" path="src"/>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
|
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
Teammitglieder:
|
|
||||||
|
|
||||||
1) Nico Piehl (2211320)
|
|
||||||
2) Cedric Bienert (2210800)
|
|
|
@ -1,8 +0,0 @@
|
||||||
Implementierung eines neuen Robotermodells (T1000):
|
|
||||||
|
|
||||||
- Die Klasse T1000 anlegen
|
|
||||||
- Diese Klasse erbt von Robotermodell und implementiert Robot
|
|
||||||
- Ähnlich wie die anderen Roboterklassen anlegen und Konstruktor/Methoden implementieren
|
|
||||||
- Bei Robotermodell müsste bei speak mit instanceof das hilfszeichen bestimmt werden
|
|
||||||
- Der T1000 müsste ebenfalls in der RobotFactory angelegt werden
|
|
||||||
- Der T1000 müsste mit ins Enum aufgenommen werden
|
|
|
@ -1,58 +1,20 @@
|
||||||
package domain;
|
package domain;
|
||||||
|
|
||||||
import exceptions.RobotException;
|
import exceptions.RobotException;
|
||||||
import exceptions.RobotIllegalStateException;
|
|
||||||
import exceptions.RobotMagicValueException;
|
|
||||||
import roboterSystem.Robot;
|
import roboterSystem.Robot;
|
||||||
|
|
||||||
/**
|
|
||||||
* Die Klasse repräsentiert das C3PO Modell.
|
|
||||||
*
|
|
||||||
* Der Roboter hat einen Konstruktor <code>C3PO(...)</code> welcher einen Namen,
|
|
||||||
* eine iD und einen Zähler besitzt der die iD erhöht.
|
|
||||||
*
|
|
||||||
* <code>think(...)</code> lässt den Roboter ein int Array absteigend sortieren
|
|
||||||
* und dann zurückgeben.
|
|
||||||
*/
|
|
||||||
public class C3PO extends Robotermodell implements Robot {
|
public class C3PO extends Robotermodell implements Robot {
|
||||||
|
|
||||||
/**
|
private int zähler = 10000;
|
||||||
* Der Zähler repräsentiert die iD.
|
|
||||||
*/
|
|
||||||
private static int zähler = 10000;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Der Konstruktor des C3PO Roboters besitzt einen Namen, eine iD
|
|
||||||
* und einen Zähler.
|
|
||||||
*
|
|
||||||
* @param String name der den Namen des Roboters repräsentiert.
|
|
||||||
*/
|
|
||||||
public C3PO(String name) {
|
public C3PO(String name) {
|
||||||
setName(name);
|
setName(name);
|
||||||
setiD(zähler);
|
setiD(zähler);
|
||||||
zähler++;
|
zähler++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sortiert ein Array von Zahlen. Die Reihenfolge verläuft absteigend.
|
|
||||||
*
|
|
||||||
* @param zahlen Zahlen, die sortiert werden sollen.
|
|
||||||
* @return Sortierte Zahlen
|
|
||||||
* @throws RobotException wenn der Roboter in einem ungültigen Zustand ist,
|
|
||||||
* oder das Array nicht seinen Vorstellungen entspricht.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public int[] think(int[] zahlen) throws RobotException {
|
public int[] think(int[] zahlen) throws RobotException {
|
||||||
try {
|
|
||||||
if (this.isPowerOn() == false) {
|
|
||||||
throw new RobotIllegalStateException(this.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < zahlen.length; i++) {
|
|
||||||
if (zahlen[i] == 42) {
|
|
||||||
throw new RobotMagicValueException(this.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (int i = 0; i < zahlen.length - 1; i++) {
|
for (int i = 0; i < zahlen.length - 1; i++) {
|
||||||
int k = i;
|
int k = i;
|
||||||
while (k >= 0 && zahlen[k] < zahlen[k+1]) {
|
while (k >= 0 && zahlen[k] < zahlen[k+1]) {
|
||||||
|
@ -62,13 +24,6 @@ public class C3PO extends Robotermodell implements Robot {
|
||||||
k--;
|
k--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (RobotIllegalStateException rise) {
|
|
||||||
letzteException = rise;
|
|
||||||
rise.printStackTrace();
|
|
||||||
} catch (RobotMagicValueException rmve) {
|
|
||||||
letzteException = rmve;
|
|
||||||
rmve.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
return zahlen;
|
return zahlen;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
package domain;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import exceptions.RobotException;
|
|
||||||
|
|
||||||
import org.junit.Assert;
|
|
||||||
|
|
||||||
class C3POTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testSetNameGetName() {
|
|
||||||
C3PO c = new C3PO("Test");
|
|
||||||
assertEquals("Test", c.getName());
|
|
||||||
c.setName("TestNeu");
|
|
||||||
assertEquals("TestNeu", c.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testSetiDGetiD() {
|
|
||||||
C3PO c = new C3PO("Test");
|
|
||||||
assertEquals(10000, c.getId());
|
|
||||||
C3PO c2 = new C3PO("Test2");
|
|
||||||
assertNotEquals(10001, c2.getId());
|
|
||||||
c2.setiD(10002);
|
|
||||||
assertEquals(10002, c2.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testTriggerPowerSwitchIsPowerOn() {
|
|
||||||
C3PO c = new C3PO("Test");
|
|
||||||
assertEquals(true, c.isPowerOn());
|
|
||||||
c.triggerPowerSwitch();
|
|
||||||
assertEquals(false, c.isPowerOn());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testThinkSpeak() throws RobotException {
|
|
||||||
C3PO c = new C3PO("Test");
|
|
||||||
int[] zahlen = {2,4,3,1,6,5};
|
|
||||||
assertEquals("2; 4; 3; 1; 6; 5", c.speak(zahlen));
|
|
||||||
int[] zahlenNeu = {6,5,4,3,2,1};
|
|
||||||
Assert.assertArrayEquals(zahlenNeu, c.think(zahlen));
|
|
||||||
assertEquals("6; 5; 4; 3; 2; 1", c.speak(c.think(zahlen)));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testGetLastException() throws RobotException {
|
|
||||||
C3PO c = new C3PO("Test");
|
|
||||||
int[] zahlen = {42,4,3,1,6,5};
|
|
||||||
c.think(zahlen);
|
|
||||||
assertEquals("exceptions.RobotMagicValueException: Test: Zahl 42 kommt vor - Roboter: \"Ihhhhh\"!", c.getLastException().toString());
|
|
||||||
c.speak(zahlen);
|
|
||||||
assertEquals("exceptions.RobotMagicValueException: Test: Zahl 42 kommt vor - Roboter: \"Ihhhhh\"!", c.getLastException().toString());
|
|
||||||
c.triggerPowerSwitch();
|
|
||||||
c.think(zahlen);
|
|
||||||
assertEquals("exceptions.RobotIllegalStateException: Test: Leider ist der Roboter aus und kann nichts machen!", c.getLastException().toString());
|
|
||||||
c.speak(zahlen);
|
|
||||||
assertEquals("exceptions.RobotIllegalStateException: Test: Leider ist der Roboter aus und kann nichts machen!", c.getLastException().toString());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,79 +0,0 @@
|
||||||
package domain;
|
|
||||||
|
|
||||||
import exceptions.RobotException;
|
|
||||||
import exceptions.RobotIllegalStateException;
|
|
||||||
import roboterSystem.Robot;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Die Klasse repräsentiert das Nexus6 Modell.
|
|
||||||
*
|
|
||||||
* Der Roboter hat einen privaten Konstruktor <code>Nexus6()</code> welcher einen
|
|
||||||
* festen Namen, eine feste iD hat und der Roboter ist ausgestellt.
|
|
||||||
*
|
|
||||||
* Damit auf den Singleton Roboter zugegriffen werden kann wird <code>getInstance()</code>
|
|
||||||
* diesen spezifischen Roboter zurückgeben.
|
|
||||||
*
|
|
||||||
* Der Roboter ist immer ausgestellt, daher macht <code>triggerPowerSwitch()</code>
|
|
||||||
* nichts.
|
|
||||||
*
|
|
||||||
* <code>think(...)</code> lässt den Roboter Exceptions werfen, macht allerdings
|
|
||||||
* nichts anderes.
|
|
||||||
*/
|
|
||||||
public class Nexus6 extends Robotermodell implements Robot {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Die private final Nexus6 Variable erzeugt immer einen Nexus6 Roboter
|
|
||||||
* und verhindert die erneute Erzeugung eines weiteren Nuxus6 Roboters.
|
|
||||||
*/
|
|
||||||
private static final Nexus6 NEXUS6 = new Nexus6();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Der Konstruktor des Nexus6 Roboters besitzt einen Namen, eine iD
|
|
||||||
* und seine Power ist immer aus.
|
|
||||||
*/
|
|
||||||
private Nexus6() {
|
|
||||||
setName("Pris");
|
|
||||||
setiD(19281982);
|
|
||||||
power = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gibt die einzige Instanz des Roboters zurück.
|
|
||||||
*
|
|
||||||
* @return Eine eindeutige Identifikation in Form des Objekts.
|
|
||||||
*/
|
|
||||||
public static Nexus6 getInstance() {
|
|
||||||
return NEXUS6;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Power ändern machts nichts, da der Roboter immer aus ist.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void triggerPowerSwitch() {
|
|
||||||
//bleibt ausgeschaltet
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Macht rein gar nichts, außer die Exception zu werfen
|
|
||||||
*
|
|
||||||
* @param zahlen Zahlen, die in einer anderen Zeitlinie sortiert werden sollten.
|
|
||||||
* @return null, da nichts gemacht wird
|
|
||||||
* @throws RobotException wenn der Roboter in einem ungültigen Zustand ist,
|
|
||||||
* oder das Array nicht seinen Vorstellungen entspricht.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public int[] think(int[] zahlen) throws RobotException {
|
|
||||||
try {
|
|
||||||
if (this.isPowerOn() == false) {
|
|
||||||
throw new RobotIllegalStateException(this.getName());
|
|
||||||
}
|
|
||||||
} catch (RobotIllegalStateException rise) {
|
|
||||||
letzteException = rise;
|
|
||||||
rise.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
package domain;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import exceptions.RobotException;
|
|
||||||
|
|
||||||
class Nexus6Test {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testInstanceNameiDPowerThink() throws RobotException {
|
|
||||||
assertTrue(Nexus6.getInstance() != null);
|
|
||||||
assertTrue(Nexus6.getInstance().getId() != 0);
|
|
||||||
assertEquals(19281982, Nexus6.getInstance().getId());
|
|
||||||
assertTrue(Nexus6.getInstance().getName() != null);
|
|
||||||
assertEquals("Pris", Nexus6.getInstance().getName());
|
|
||||||
assertTrue(Nexus6.getInstance().isPowerOn() != true);
|
|
||||||
Nexus6.getInstance().triggerPowerSwitch();
|
|
||||||
assertTrue(Nexus6.getInstance().isPowerOn() != true);
|
|
||||||
assertTrue(Nexus6.getInstance().think(null) == null);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,59 +1,20 @@
|
||||||
package domain;
|
package domain;
|
||||||
|
|
||||||
import exceptions.RobotException;
|
import exceptions.RobotException;
|
||||||
import exceptions.RobotIllegalStateException;
|
|
||||||
import exceptions.RobotMagicValueException;
|
|
||||||
import roboterSystem.Robot;
|
import roboterSystem.Robot;
|
||||||
|
|
||||||
/**
|
|
||||||
* Die Klasse repräsentiert das R2D2 Modell.
|
|
||||||
*
|
|
||||||
* Der Roboter hat einen Konstruktor <code>R2D2(...)</code> welcher einen Namen,
|
|
||||||
* eine iD und einen Zähler besitzt der die iD erhöht.
|
|
||||||
*
|
|
||||||
* <code>think(...)</code> lässt den Roboter ein int Array aufsteigend sortieren
|
|
||||||
* und dann zurückgeben.
|
|
||||||
*/
|
|
||||||
public class R2D2 extends Robotermodell implements Robot {
|
public class R2D2 extends Robotermodell implements Robot {
|
||||||
|
|
||||||
/**
|
private int zähler = 0;
|
||||||
* Der Zähler repräsentiert die iD.
|
|
||||||
*/
|
|
||||||
private static int zähler = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Der Konstruktor des R2D2 Roboters besitzt einen Namen, eine iD
|
|
||||||
* und einen Zähler.
|
|
||||||
*
|
|
||||||
* @param String name der den Namen des Roboters repräsentiert.
|
|
||||||
*/
|
|
||||||
public R2D2(String name) {
|
public R2D2(String name) {
|
||||||
setName(name);
|
setName(name);
|
||||||
setiD(zähler);
|
setiD(zähler);
|
||||||
zähler++;
|
zähler++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sortiert ein Array von Zahlen. Die Reihenfolge verläuft aufsteigend.
|
|
||||||
*
|
|
||||||
* @param zahlen Zahlen, die sortiert werden sollen.
|
|
||||||
* @return Sortierte Zahlen
|
|
||||||
* @throws RobotException wenn der Roboter in einem ungültigen Zustand ist,
|
|
||||||
* oder das Array nicht seinen Vorstellungen entspricht.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public int[] think(int[] zahlen) throws RobotException {
|
public int[] think(int[] zahlen) throws RobotException {
|
||||||
try {
|
|
||||||
if (this.isPowerOn() == false) {
|
|
||||||
throw new RobotIllegalStateException(this.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < zahlen.length; i++) {
|
|
||||||
if (zahlen[i] == 42) {
|
|
||||||
throw new RobotMagicValueException(this.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < zahlen.length; i++) {
|
for (int i = 0; i < zahlen.length; i++) {
|
||||||
int kMin = i;
|
int kMin = i;
|
||||||
for (int k = i + 1; k < zahlen.length; k++) {
|
for (int k = i + 1; k < zahlen.length; k++) {
|
||||||
|
@ -68,13 +29,6 @@ public class R2D2 extends Robotermodell implements Robot {
|
||||||
zahlen[kMin] = zwischenspeicher;
|
zahlen[kMin] = zwischenspeicher;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (RobotIllegalStateException rise) {
|
|
||||||
letzteException = rise;
|
|
||||||
rise.printStackTrace();
|
|
||||||
} catch (RobotMagicValueException rmve) {
|
|
||||||
letzteException = rmve;
|
|
||||||
rmve.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
return zahlen;
|
return zahlen;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
package domain;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import exceptions.RobotException;
|
|
||||||
|
|
||||||
import org.junit.Assert;
|
|
||||||
|
|
||||||
class R2D2Test {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testSetNameGetName() {
|
|
||||||
R2D2 r = new R2D2("Test");
|
|
||||||
assertEquals("Test", r.getName());
|
|
||||||
r.setName("TestNeu");
|
|
||||||
assertEquals("TestNeu", r.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testSetiDGetiD() {
|
|
||||||
R2D2 r = new R2D2("Test");
|
|
||||||
assertEquals(0, r.getId());
|
|
||||||
R2D2 r2 = new R2D2("Test2");
|
|
||||||
assertNotEquals(1, r2.getId());
|
|
||||||
r2.setiD(2);
|
|
||||||
assertEquals(2, r2.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testTriggerPowerSwitchIsPowerOn() {
|
|
||||||
R2D2 r = new R2D2("Test");
|
|
||||||
assertEquals(true, r.isPowerOn());
|
|
||||||
r.triggerPowerSwitch();
|
|
||||||
assertEquals(false, r.isPowerOn());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testThinkSpeak() throws RobotException {
|
|
||||||
R2D2 r = new R2D2("Test");
|
|
||||||
int[] zahlen = {2,4,3,1,6,5};
|
|
||||||
assertEquals("2, 4, 3, 1, 6, 5", r.speak(zahlen));
|
|
||||||
int[] zahlenNeu = {1,2,3,4,5,6};
|
|
||||||
Assert.assertArrayEquals(zahlenNeu, r.think(zahlen));
|
|
||||||
assertEquals("1, 2, 3, 4, 5, 6", r.speak(r.think(zahlen)));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testGetLastException() throws RobotException {
|
|
||||||
R2D2 r = new R2D2("Test");
|
|
||||||
int[] zahlen = {42,4,3,1,6,5};
|
|
||||||
r.think(zahlen);
|
|
||||||
assertEquals("exceptions.RobotMagicValueException: Test: Zahl 42 kommt vor - Roboter: \"Ihhhhh\"!", r.getLastException().toString());
|
|
||||||
r.speak(zahlen);
|
|
||||||
assertEquals("exceptions.RobotMagicValueException: Test: Zahl 42 kommt vor - Roboter: \"Ihhhhh\"!", r.getLastException().toString());
|
|
||||||
r.triggerPowerSwitch();
|
|
||||||
r.think(zahlen);
|
|
||||||
assertEquals("exceptions.RobotIllegalStateException: Test: Leider ist der Roboter aus und kann nichts machen!", r.getLastException().toString());
|
|
||||||
r.speak(zahlen);
|
|
||||||
assertEquals("exceptions.RobotIllegalStateException: Test: Leider ist der Roboter aus und kann nichts machen!", r.getLastException().toString());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,10 +1,5 @@
|
||||||
package domain;
|
package domain;
|
||||||
|
|
||||||
/**
|
|
||||||
* Die Klasse repräsentiert alle Roboter Modelle die existieren.
|
|
||||||
*
|
|
||||||
* Die Roboter können vom Modell C3PO, R2D2 oder NEXUS6 sein.
|
|
||||||
*/
|
|
||||||
public enum RobotType {
|
public enum RobotType {
|
||||||
C3PO, R2D2, NEXUS6;
|
C3PO, R2D2;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,12 @@
|
||||||
package domain;
|
package domain;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
import exceptions.RobotException;
|
import exceptions.RobotException;
|
||||||
import exceptions.RobotIllegalStateException;
|
|
||||||
import exceptions.RobotMagicValueException;
|
|
||||||
import roboterSystem.Robot;
|
import roboterSystem.Robot;
|
||||||
|
|
||||||
public abstract class Robotermodell implements Robot {
|
public abstract class Robotermodell implements Robot {
|
||||||
private int iD;
|
private int iD;
|
||||||
private String name;
|
private String name;
|
||||||
protected boolean power = true;
|
private boolean power = true;
|
||||||
protected RobotException letzteException;
|
|
||||||
|
|
||||||
public void setName(String name) {
|
public void setName(String name) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
@ -47,49 +42,14 @@ public abstract class Robotermodell implements Robot {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RobotException getLastException() {
|
public RobotException getLastException() {
|
||||||
return letzteException;
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String speak(int[] zahlen) throws RobotException {
|
public String speak(int[] zahlen) throws RobotException {
|
||||||
StringBuilder sb = new StringBuilder();
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
try {
|
|
||||||
if (this.isPowerOn() == false) {
|
|
||||||
throw new RobotIllegalStateException(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < zahlen.length; i++) {
|
|
||||||
if (zahlen[i] == 42) {
|
|
||||||
throw new RobotMagicValueException(name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String hilfszeichen;
|
|
||||||
|
|
||||||
if (this instanceof C3PO) {
|
|
||||||
hilfszeichen = ";";
|
|
||||||
} else if (this instanceof R2D2){
|
|
||||||
hilfszeichen = ",";
|
|
||||||
} else {
|
|
||||||
//wird beim Nexus6 geworfen
|
|
||||||
throw new RobotIllegalStateException(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
Arrays.stream(zahlen)
|
|
||||||
.forEach(z -> sb.append(z + hilfszeichen + " "));
|
|
||||||
|
|
||||||
sb.setLength(sb.length() - 2);
|
|
||||||
|
|
||||||
} catch (RobotIllegalStateException rise) {
|
|
||||||
letzteException = rise;
|
|
||||||
rise.printStackTrace();
|
|
||||||
} catch (RobotMagicValueException rmve) {
|
|
||||||
letzteException = rmve;
|
|
||||||
rmve.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
return sb.toString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,30 +1,7 @@
|
||||||
package exceptions;
|
package exceptions;
|
||||||
|
|
||||||
/**
|
|
||||||
* Die Klasse repräsentiert die Exceptions der Roboter.
|
|
||||||
*
|
|
||||||
* Der Roboter hat einen Konstruktor <code>RobotException()</code> welcher nichts macht.
|
|
||||||
*
|
|
||||||
* Der Roboter hat einen weiteren Konstruktor <code>RobotException(...)</code> welcher
|
|
||||||
* einen String übergeben bekommt und diesen an seine Superklasse übergibt.
|
|
||||||
*/
|
|
||||||
public class RobotException extends Exception{
|
public class RobotException extends Exception{
|
||||||
|
|
||||||
/**
|
|
||||||
* Der Konstruktor macht nichts.
|
|
||||||
*/
|
|
||||||
public RobotException() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Der Konstruktor bekommt einen String übergeben und gibt diesen an
|
|
||||||
* seine Superklasse weiter.
|
|
||||||
*
|
|
||||||
* @param String fehlertext repräsentiert den Text den die Exception wirft.
|
|
||||||
*/
|
|
||||||
public RobotException(String fehlertext) {
|
|
||||||
super(fehlertext);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,32 +1,6 @@
|
||||||
package exceptions;
|
package exceptions;
|
||||||
|
|
||||||
/**
|
public class RobotIllegalStateException extends Exception{
|
||||||
* Die Klasse repräsentiert die RobotIllegalStateException der Roboter.
|
|
||||||
*
|
|
||||||
* Der Roboter hat einen Konstruktor <code>RobotException()</code> welcher einen
|
|
||||||
* Fehlertext an seine Superklasse übergibt.
|
|
||||||
*
|
|
||||||
* Der Roboter hat einen weiteren Konstruktor <code>RobotException(...)</code> welcher
|
|
||||||
* einen String übergeben bekommt und diesen an seine Superklasse übergibt.
|
|
||||||
*/
|
|
||||||
public class RobotIllegalStateException extends RobotException{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Der Konstruktor erzeugt einen Fehlertext und übergibt diesen an
|
|
||||||
* seine Superkalsse.
|
|
||||||
*/
|
|
||||||
public RobotIllegalStateException() {
|
|
||||||
super("Leider ist der Roboter aus und kann nichts machen!");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Der Konstruktor bekommt einen String (den Namen) übergeben und gibt diesen an
|
|
||||||
* seine Superklasse weiter.
|
|
||||||
*
|
|
||||||
* @param String name repräsentiert den Namen des Roboters der die Exception wirft.
|
|
||||||
*/
|
|
||||||
public RobotIllegalStateException(String name) {
|
|
||||||
super(name + ": Leider ist der Roboter aus und kann nichts machen!");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,32 +1,6 @@
|
||||||
package exceptions;
|
package exceptions;
|
||||||
|
|
||||||
/**
|
public class RobotMagicValueException extends Exception{
|
||||||
* Die Klasse repräsentiert die RobotMagicValueException der Roboter.
|
|
||||||
*
|
|
||||||
* Der Roboter hat einen Konstruktor <code>RobotException()</code> welcher einen
|
|
||||||
* Fehlertext an seine Superklasse übergibt.
|
|
||||||
*
|
|
||||||
* Der Roboter hat einen weiteren Konstruktor <code>RobotException(...)</code> welcher
|
|
||||||
* einen String übergeben bekommt und diesen an seine Superklasse übergibt.
|
|
||||||
*/
|
|
||||||
public class RobotMagicValueException extends RobotException{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Der Konstruktor erzeugt einen Fehlertext und übergibt diesen an
|
|
||||||
* seine Superkalsse.
|
|
||||||
*/
|
|
||||||
public RobotMagicValueException() {
|
|
||||||
super("Zahl 42 kommt vor - Roboter: \"Ihhhhh\"!");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Der Konstruktor bekommt einen String (den Namen) übergeben und gibt diesen an
|
|
||||||
* seine Superklasse weiter.
|
|
||||||
*
|
|
||||||
* @param String name repräsentiert den Namen des Roboters der die Exception wirft.
|
|
||||||
*/
|
|
||||||
public RobotMagicValueException(String name) {
|
|
||||||
super(name + ": Zahl 42 kommt vor - Roboter: \"Ihhhhh\"!");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,21 +5,8 @@ import domain.R2D2;
|
||||||
import domain.RobotType;
|
import domain.RobotType;
|
||||||
import domain.Robotermodell;
|
import domain.Robotermodell;
|
||||||
|
|
||||||
/**
|
|
||||||
* Die Klasse repräsentiert die RobotFactory.
|
|
||||||
*
|
|
||||||
* Mit <code>robotFactory(...)</code> werden die jeweiligen Modelle bzw. Instanzen
|
|
||||||
* der Roboter erzeugt.
|
|
||||||
*/
|
|
||||||
public class RobotFactory {
|
public class RobotFactory {
|
||||||
|
|
||||||
/**
|
|
||||||
* Erzeugt die jeweiligen Modelle der Roboter.
|
|
||||||
*
|
|
||||||
* @param RobotType modell stellt als Enum das Modell des Roboters dar.
|
|
||||||
* @param String name stellt den Namen des Roboters dar.
|
|
||||||
* @return Eine eindeutige Instanz in Form des Objekts oder eben null.
|
|
||||||
*/
|
|
||||||
public static Robotermodell robotFactory (RobotType modell, String name) {
|
public static Robotermodell robotFactory (RobotType modell, String name) {
|
||||||
switch(modell) {
|
switch(modell) {
|
||||||
case C3PO:
|
case C3PO:
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
package main;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import domain.RobotType;
|
|
||||||
|
|
||||||
class RobotFactoryTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testRobotFactory() {
|
|
||||||
assertEquals(10000, RobotFactory.robotFactory(RobotType.C3PO, "Test").getId());
|
|
||||||
assertEquals("Test", RobotFactory.robotFactory(RobotType.C3PO, "Test").getName());
|
|
||||||
assertEquals(0, RobotFactory.robotFactory(RobotType.R2D2, "Tes2t").getId());
|
|
||||||
assertEquals("Test2", RobotFactory.robotFactory(RobotType.R2D2, "Test2").getName());
|
|
||||||
assertTrue(RobotFactory.robotFactory(RobotType.NEXUS6, "Tes2t") == null);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue