diff --git a/src/aliensimulator/predators/PredatorFactory.java b/src/aliensimulator/predators/PredatorFactory.java index 14ad9e3fe5367105689b17c33998c9d984611dd0..66292227c83710177e0105822eb594f722bb44dd 100644 --- a/src/aliensimulator/predators/PredatorFactory.java +++ b/src/aliensimulator/predators/PredatorFactory.java @@ -1,13 +1,23 @@ package aliensimulator.predators; +import java.io.IOException; +import java.util.Properties; + public class PredatorFactory { public Predator createPredator(String type) { - if (type.equals("yautja")) { - return new Yautja(); - } else if (type.equals("hishquten")) { - return new HishQuTen(); - } else return null; + Predator predator = null; + Properties properties = new Properties(); + + try { + properties.load(this.getClass().getResourceAsStream("predator.properties")); + String className = properties.getProperty(type); + Class<?> classOfPredator = Class.forName(className); + predator = (Predator) classOfPredator.newInstance(); + } catch (IOException | ClassNotFoundException | InstantiationException | IllegalAccessException e) { + e.printStackTrace(); + } + return predator; } } diff --git a/src/aliensimulator/predators/predator.properties b/src/aliensimulator/predators/predator.properties new file mode 100644 index 0000000000000000000000000000000000000000..a1f5396a9b8cde58977be9f74eb2a680840745d0 --- /dev/null +++ b/src/aliensimulator/predators/predator.properties @@ -0,0 +1,2 @@ +yautja=aliensimulator.predators.Yautja +hishquten=aliensimulator.predators.HishQuTen