Merge branch 'feature/factory_impl' into develop

This commit is contained in:
Nikita Iryupin 2020-12-26 15:08:36 +01:00
commit 3aaa5c72e6

View File

@ -1,21 +1,19 @@
package cz.cvut.fel.sit.omo.foodchain.factory;
import cz.cvut.fel.sit.omo.foodchain.FoodChain;
import cz.cvut.fel.sit.omo.foodchain.node.*;
import cz.cvut.fel.sit.omo.foodchain.node.Customer;
import cz.cvut.fel.sit.omo.foodchain.node.Farmer;
import cz.cvut.fel.sit.omo.foodchain.node.NodeBase;
import cz.cvut.fel.sit.omo.foodchain.operation.ProductOperationType;
import cz.cvut.fel.sit.omo.foodchain.operation.TransactionType;
import cz.cvut.fel.sit.omo.foodchain.parser.ParserResultElement;
import cz.cvut.fel.sit.omo.foodchain.pool.ChannelPool;
import cz.cvut.fel.sit.omo.foodchain.product.Product;
import cz.cvut.fel.sit.omo.foodchain.product.ProductType;
import cz.cvut.fel.sit.omo.foodchain.scenario.*;
import javax.money.Monetary;
import javax.money.MonetaryAmount;
import java.util.Arrays;
import java.util.List;
import java.util.LinkedList;
import java.util.Objects;
import java.util.List;
public class ScenarioFactory
{
@ -39,9 +37,11 @@ public class ScenarioFactory
String[] steps = Arrays.stream(input.getChild("steps").split("\n")).filter(st -> !st.strip().equals("")).toArray(String[]::new);
List<ScenarioStep> scenarioSteps = new LinkedList<>();
ScenarioStep scenarioStep = null;
for (String step : steps) {
for (String step : steps)
{
String[] parts = step.strip().split(" ");
switch (parts[0]) {
switch (parts[0])
{
case "generate":
scenarioStep = new GenerateProductStep((Farmer) node);
break;
@ -49,10 +49,12 @@ public class ScenarioFactory
scenarioStep = new ConsumeProductStep((Customer) node);
break;
case "doaction":
if (parts.length == 2) {
if (parts.length == 2)
{
scenarioStep = new DoActionStep(node, ProductOperationType.valueOf(parts[1]));
}
else {
else
{
Product p = FoodChain.getFactoryManager().getPoolDatabaseInstance().getProductPoolInstance().findAll().stream()
.filter(pr -> pr.getName().equals(parts[2])).findFirst().orElse(null);
scenarioStep = new DoActionStep(node, ProductOperationType.valueOf(parts[1]), p);
@ -71,11 +73,11 @@ public class ScenarioFactory
}
catch (IllegalArgumentException e)
{
System.err.println("! Wrong type of enum in ProductFactory: " + e);
System.err.println("! Wrong type of enum in ScenarioFactory: " + e);
}
catch (Exception e)
{
System.err.println("! Fatal error in ProductFactory: " + e);
System.err.println("! Fatal error in ScenarioFactory: " + e);
}
return s;