diff --git a/conf/channels.xml b/conf/channels.xml
index dfa0429..1df2af7 100644
--- a/conf/channels.xml
+++ b/conf/channels.xml
@@ -1,5 +1,12 @@
+
+
+
+
+ ]>
-
+
\ No newline at end of file
diff --git a/conf/nodes.xml b/conf/nodes.xml
index b5a2081..7f80ca2 100644
--- a/conf/nodes.xml
+++ b/conf/nodes.xml
@@ -1,18 +1,27 @@
+
+
+
+
+
+
+ ]>
100
- MEET PURCHASE;VEGETABLE PURCHASE;FRUIT PURCHASE
+ MEAT PURCHASE;VEGETABLE PURCHASE;FRUIT PURCHASE
0
- MEET SALE_AND_PURCHASE;VEGETABLE SALE_AND_PURCHASE;FRUIT SALE_AND_PURCHASE
+ MEAT SALE_AND_PURCHASE;VEGETABLE SALE_AND_PURCHASE;FRUIT SALE_AND_PURCHASE
1500
- MEET SALE_AND_PURCHASE;VEGETABLE SALE_AND_PURCHASE;FRUIT SALE_AND_PURCHASE
+ MEAT SALE_AND_PURCHASE;VEGETABLE SALE_AND_PURCHASE;FRUIT SALE_AND_PURCHASE
250
- MEET SALE;VEGETABLE SALE;FRUIT SALE
+ MEAT SALE;VEGETABLE SALE;FRUIT SALE
\ No newline at end of file
diff --git a/conf/products.xml b/conf/products.xml
index ac863d4..1767295 100644
--- a/conf/products.xml
+++ b/conf/products.xml
@@ -1,3 +1,11 @@
+
+
+
+
+
+
+ ]>
jablko
@@ -31,17 +39,17 @@
vepřové
- MEET
+ MEAT
20
hovězí
- MEET
+ MEAT
50
kuřecí
- MEET
+ MEAT
30
\ No newline at end of file
diff --git a/conf/scenarios.xml b/conf/scenarios.xml
index fb74da6..512516b 100644
--- a/conf/scenarios.xml
+++ b/conf/scenarios.xml
@@ -1,3 +1,11 @@
+
+
+
+
+
+ ]>
diff --git a/pom.xml b/pom.xml
index f855455..4da069c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,9 +9,10 @@
1.0-SNAPSHOT
- javax.money
- money-api
- 1.0
+ org.javamoney
+ moneta
+ 1.4.2
+ pom
diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/FoodChain.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/FoodChain.java
index 078bdfd..35e2baf 100644
--- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/FoodChain.java
+++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/FoodChain.java
@@ -6,7 +6,8 @@ import cz.cvut.fel.sit.omo.foodchain.node.NodeBase;
import cz.cvut.fel.sit.omo.foodchain.parser.ConfigurationParser;
import cz.cvut.fel.sit.omo.foodchain.parser.ParserResult;
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.scenario.Scenario;
import org.xml.sax.SAXException;
import javax.xml.parsers.ParserConfigurationException;
@@ -22,6 +23,11 @@ public class FoodChain
{
parseChannels();
parseNodes();
+ parseProducts();
+ parseScenarios();
+
+ getFactoryManager().getPoolDatabaseInstance().getChannelPoolInstance().findAll().stream().forEach(ch -> System.out.println(ch.getProductType()));
+ getFactoryManager().getPoolDatabaseInstance().getNodePoolInstance().findAll().stream().forEach(ch -> System.out.println(ch));
}
public static FactoryManager getFactoryManager()
@@ -29,7 +35,6 @@ public class FoodChain
return factoryManager;
}
-
// todo maybe some refactoring needed?
// add other entities
public static void parseChannels()
@@ -37,7 +42,7 @@ public class FoodChain
try
{
// parse channel configuration
- ConfigurationParser.parseDocument("../conf/channels.xml");
+ ConfigurationParser.parseDocument("conf/channels.xml");
ParserResult parserResult = ConfigurationParser.getElements("channel");
List elements = parserResult.getElements();
for (ParserResultElement el : elements)
@@ -51,17 +56,14 @@ public class FoodChain
{
System.err.println(e.getMessage());
}
- catch (Exception e)
- {
- System.err.println(e.getMessage());
- }
}
+
public static void parseNodes()
{
try
{
// parse channel configuration
- ConfigurationParser.parseDocument("../conf/nodes.xml");
+ ConfigurationParser.parseDocument("conf/nodes.xml");
ParserResult parserResult = ConfigurationParser.getElements("node");
List elements = parserResult.getElements();
for (ParserResultElement el : elements)
@@ -75,7 +77,45 @@ public class FoodChain
{
System.err.println(e.getMessage());
}
- catch (Exception e)
+ }
+
+ public static void parseProducts()
+ {
+ try
+ {
+ // parse channel configuration
+ ConfigurationParser.parseDocument("conf/products.xml");
+ ParserResult parserResult = ConfigurationParser.getElements("product");
+ List elements = parserResult.getElements();
+ for (ParserResultElement el : elements)
+ {
+ Product res = getFactoryManager().getProductFactoryInstance().makeProduct(el);
+ getFactoryManager().getPoolDatabaseInstance().getProductPoolInstance().add(res);
+ }
+
+ }
+ catch (ParserConfigurationException | SAXException | IOException e)
+ {
+ System.err.println(e.getMessage());
+ }
+ }
+
+ public static void parseScenarios()
+ {
+ try
+ {
+ // parse channel configuration
+ ConfigurationParser.parseDocument("conf/scenarios.xml");
+ ParserResult parserResult = ConfigurationParser.getElements("scenario");
+ List elements = parserResult.getElements();
+ for (ParserResultElement el : elements)
+ {
+ Scenario res = getFactoryManager().getScenarioFactoryInstance().makeScenario(el);
+ getFactoryManager().getPoolDatabaseInstance().getScenarioPoolInstance().add(res);
+ }
+
+ }
+ catch (ParserConfigurationException | SAXException | IOException e)
{
System.err.println(e.getMessage());
}
diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/factory/NodeFactory.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/factory/NodeFactory.java
index 63237ce..9940b75 100644
--- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/factory/NodeFactory.java
+++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/factory/NodeFactory.java
@@ -33,7 +33,7 @@ public class NodeFactory
{
nodeType = NodeType.valueOf(input.getAttribute("type"));
- subsChannels = input.getChild("subscribed_channels");
+ subsChannels = input.getChild("channels");
startMoney = Double.parseDouble(input.getChild("money"));
}
catch (IllegalArgumentException e)
diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/factory/ScenarioFactory.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/factory/ScenarioFactory.java
index 7dcb2a1..84f2c1b 100644
--- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/factory/ScenarioFactory.java
+++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/factory/ScenarioFactory.java
@@ -21,7 +21,6 @@ public class ScenarioFactory
{
Scenario s = null;
-
return s;
}
}
diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/parser/ConfigurationParser.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/parser/ConfigurationParser.java
index cdcfb44..cb27b5a 100644
--- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/parser/ConfigurationParser.java
+++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/parser/ConfigurationParser.java
@@ -31,10 +31,19 @@ public class ConfigurationParser {
Node tmpNode = elements.item(i);
ParserResultElement element = new ParserResultElement();
for (int j = 0; j < tmpNode.getAttributes().getLength(); j++) {
- element.addAttribute(tmpNode.getAttributes().item(i).getNodeName(), tmpNode.getAttributes().item(i).getTextContent());
+ element
+ .addAttribute(
+ tmpNode
+ .getAttributes()
+ .item(j)
+ .getNodeName(),
+ tmpNode
+ .getAttributes()
+ .item(j)
+ .getTextContent());
}
for (int j = 0; j < tmpNode.getChildNodes().getLength(); j++) {
- element.addChild(tmpNode.getChildNodes().item(i).getNodeName(), tmpNode.getChildNodes().item(i).getTextContent());
+ element.addChild(tmpNode.getChildNodes().item(j).getNodeName(), tmpNode.getChildNodes().item(j).getTextContent());
}
resultList.addElement(element);
}
diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/parser/ParserResultElement.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/parser/ParserResultElement.java
index d7155e0..54afed5 100644
--- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/parser/ParserResultElement.java
+++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/parser/ParserResultElement.java
@@ -11,6 +11,7 @@ public class ParserResultElement {
private Map children;
public ParserResultElement() {
+ children = new HashMap<>();
attributes = new HashMap<>();
}
diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/pool/NodePool.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/pool/NodePool.java
index 249a52d..07423b1 100644
--- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/pool/NodePool.java
+++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/pool/NodePool.java
@@ -3,5 +3,4 @@ package cz.cvut.fel.sit.omo.foodchain.pool;
import cz.cvut.fel.sit.omo.foodchain.node.NodeBase;
public class NodePool extends PoolListBase {
- //TODO Tomas Angelo
}
diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/util/Ticker.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/util/Ticker.java
index c802507..d61c75e 100644
--- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/util/Ticker.java
+++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/util/Ticker.java
@@ -12,10 +12,10 @@ public class Ticker {
public static void start() {
timer = new Timer(500, actionEvent -> {
PoolDatabase db = FoodChain.getFactoryManager().getPoolDatabaseInstance();
- db.getChannelPoolInstance().findAll().forEach(ch -> ch.tick()); // change TTL of requirements
- db.getNodePoolInstance().findAll().forEach(ch -> ch.tick()); // do next step in scenario
- db.getProductPoolInstance().findAll().forEach(ch -> ch.tick()); // change duration of action
- db.getScenarioPoolInstance().findAll().forEach(ch -> ch.tick()); // maybe unnecessary
+// db.getChannelPoolInstance().findAll().forEach(ch -> ch.tick()); // change TTL of requirements
+// db.getNodePoolInstance().findAll().forEach(ch -> ch.tick()); // do next step in scenario
+// db.getProductPoolInstance().findAll().forEach(ch -> ch.tick()); // change duration of action
+// db.getScenarioPoolInstance().findAll().forEach(ch -> ch.tick()); // maybe unnecessary
});
timer.start();
}