random serial number generating implemented
parent
f8ce7fa3e8
commit
b6150d2254
|
@ -1,5 +1,21 @@
|
||||||
|
import de.hsmannheim.informatik.name.domain.RobotFactory;
|
||||||
|
import de.hsmannheim.informatik.name.domain.RobotType;
|
||||||
|
import de.hsmannheim.informatik.name.domain.exceptions.RobotIllegalStateException;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) throws RobotIllegalStateException {
|
||||||
System.out.println("Hello world!");
|
Random r = new Random();
|
||||||
|
RobotFactory rf = new RobotFactory();
|
||||||
|
RobotType R2D2 = RobotType.R2D2;
|
||||||
|
RobotType C3P0 = RobotType.C3P0;
|
||||||
|
for (int i = 0; i < 10000; i++) {
|
||||||
|
rf.getRobot(R2D2, 0);
|
||||||
|
}
|
||||||
|
System.out.println("finished R2D2");
|
||||||
|
for (int i = 0; i < 10000; i++) {
|
||||||
|
rf.getRobot(C3P0, 0);
|
||||||
|
}
|
||||||
|
System.out.println("finished C3P0");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -5,6 +5,10 @@ import de.hsmannheim.informatik.name.domain.requirements.Robot;
|
||||||
import de.hsmannheim.informatik.name.domain.starwars.C3PO;
|
import de.hsmannheim.informatik.name.domain.starwars.C3PO;
|
||||||
import de.hsmannheim.informatik.name.domain.starwars.R2D2;
|
import de.hsmannheim.informatik.name.domain.starwars.R2D2;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <h1>RobotFactory</h1>
|
* <h1>RobotFactory</h1>
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -13,6 +17,8 @@ import de.hsmannheim.informatik.name.domain.starwars.R2D2;
|
||||||
* @see RobotType
|
* @see RobotType
|
||||||
*/
|
*/
|
||||||
public class RobotFactory {
|
public class RobotFactory {
|
||||||
|
private Set<Integer> serialNumbersR2D2 = new HashSet<>();
|
||||||
|
private Set<Integer> serialNumbersC3P0 = new HashSet<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Factory Method to get a {@link Robot}
|
* Factory Method to get a {@link Robot}
|
||||||
|
@ -23,12 +29,38 @@ public class RobotFactory {
|
||||||
* @throws RobotIllegalStateException the robot initializes in an illegal state
|
* @throws RobotIllegalStateException the robot initializes in an illegal state
|
||||||
*/
|
*/
|
||||||
public Robot getRobot(RobotType type, int serialNumber) throws RobotIllegalStateException {
|
public Robot getRobot(RobotType type, int serialNumber) throws RobotIllegalStateException {
|
||||||
|
Random r = new Random();
|
||||||
|
boolean usedSerialNumber = true;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case C3P0 -> {
|
case C3P0 -> {
|
||||||
return new C3PO(serialNumber);
|
int serialNumberC3P0;
|
||||||
|
do{
|
||||||
|
// String temp = String.format("%04d", r.nextInt(1000)+10000);
|
||||||
|
serialNumberC3P0 = r.nextInt(10000)+10000;
|
||||||
|
if(!serialNumbersC3P0.contains(serialNumberC3P0)){
|
||||||
|
serialNumbersC3P0.add(serialNumberC3P0);
|
||||||
|
usedSerialNumber = false;
|
||||||
|
}
|
||||||
|
}while(usedSerialNumber);
|
||||||
|
//Debug output
|
||||||
|
System.out.println(serialNumberC3P0);
|
||||||
|
//
|
||||||
|
return new C3PO(serialNumberC3P0);
|
||||||
}
|
}
|
||||||
case R2D2 -> {
|
case R2D2 -> {
|
||||||
return new R2D2(serialNumber);
|
int serialNumberR2D2;
|
||||||
|
do{
|
||||||
|
String temp = String.format("%05d", r.nextInt(10000));
|
||||||
|
serialNumberR2D2 = Integer.parseInt(temp);
|
||||||
|
if(!serialNumbersR2D2.contains(serialNumberR2D2)){
|
||||||
|
serialNumbersR2D2.add(serialNumberR2D2);
|
||||||
|
usedSerialNumber = false;
|
||||||
|
}
|
||||||
|
}while(usedSerialNumber);
|
||||||
|
//Debug output
|
||||||
|
System.out.println(serialNumberR2D2);
|
||||||
|
//
|
||||||
|
return new R2D2(serialNumberR2D2);
|
||||||
}
|
}
|
||||||
default -> {
|
default -> {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -24,6 +24,7 @@ public class C3PO extends StarWarsRobot {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* C3PO think method sorts numbers with insertion sort in descending order
|
* C3PO think method sorts numbers with insertion sort in descending order
|
||||||
|
*
|
||||||
* @param numbers integer numbers for sorting
|
* @param numbers integer numbers for sorting
|
||||||
* @return arrToSort integer array with numbers sorted in descending order
|
* @return arrToSort integer array with numbers sorted in descending order
|
||||||
* @throws RobotException
|
* @throws RobotException
|
||||||
|
|
|
@ -24,6 +24,7 @@ public class R2D2 extends StarWarsRobot {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* R2D2 think method sorts numbers with selection sort in ascending order
|
* R2D2 think method sorts numbers with selection sort in ascending order
|
||||||
|
*
|
||||||
* @param numbers integer numbers for sorting
|
* @param numbers integer numbers for sorting
|
||||||
* @return arrayToSort integer array with numbers sorted in ascending order
|
* @return arrayToSort integer array with numbers sorted in ascending order
|
||||||
* @throws RobotException
|
* @throws RobotException
|
||||||
|
|
Loading…
Reference in New Issue