Refactored document parsing in main().

Added configuration file paths from args.
This commit is contained in:
Daniel Poustka 2021-01-03 11:48:31 +01:00
parent bfde92e92c
commit f5c2ad80a7

View File

@ -22,18 +22,31 @@ public class FoodChain
public static void main(String[] args) public static void main(String[] args)
{ {
parseChannels(); if(args.length < 4)
parseNodes(); {
parseProducts(); parseChannels("conf/channels.xml");
parseScenarios(); parseNodes("conf/nodes.xml");
parseProducts("conf/products.xml");
parseScenarios("conf/scenarios.xml");
}
else
{
parseChannels(args[1]);
parseNodes(args[2]);
parseProducts(args[3]);
parseScenarios(args[4]);
}
// getFactoryManager().getPoolDatabaseInstance().getChannelPoolInstance().findAll().stream().forEach(ch -> System.out.println(ch.getProductType())); // getFactoryManager().getPoolDatabaseInstance().getChannelPoolInstance().findAll().stream().forEach(ch -> System.out.println(ch.getProductType()));
// getFactoryManager().getPoolDatabaseInstance().getNodePoolInstance().findAll().stream().forEach(ch -> System.out.println(ch)); // getFactoryManager().getPoolDatabaseInstance().getNodePoolInstance().findAll().stream().forEach(ch -> System.out.println(ch));
// getFactoryManager().getPoolDatabaseInstance().getProductPoolInstance().findAll().stream().forEach(ch -> System.out.println(ch.getProductType() + " " + ch.getName())); // getFactoryManager().getPoolDatabaseInstance().getProductPoolInstance().findAll().stream().forEach(ch -> System.out.println(ch.getProductType() + " " + ch.getName()));
// getFactoryManager().getPoolDatabaseInstance().getScenarioPoolInstance().findAll().stream().forEach(ch -> ch.getSteps().stream().forEach(s -> System.out.println(s))); // getFactoryManager().getPoolDatabaseInstance().getScenarioPoolInstance().findAll().stream().forEach(ch -> ch.getSteps().stream().forEach(s -> System.out.println(s)));
Ticker.start(); Ticker.start();
while (Ticker.getTimer().isRunning()); while (Ticker.getTimer().isRunning())
{
;
}
} }
public static FactoryManager getFactoryManager() public static FactoryManager getFactoryManager()
@ -41,89 +54,61 @@ public class FoodChain
return factoryManager; return factoryManager;
} }
// todo maybe some refactoring needed? public static ParserResult parseDocument(String path, String rootElementTag)
// add other entities
public static void parseChannels()
{ {
try try
{ {
// parse channel configuration ConfigurationParser.parseDocument(path);
ConfigurationParser.parseDocument("conf/channels.xml");
ParserResult parserResult = ConfigurationParser.getElements("channel");
List<ParserResultElement> elements = parserResult.getElements();
for (ParserResultElement el : elements)
{
ChannelBase res = getFactoryManager().getChannelFactoryInstance().makeChannel(el);
getFactoryManager().getPoolDatabaseInstance().getChannelPoolInstance().add(res);
}
} }
catch (ParserConfigurationException | SAXException | IOException e) catch (ParserConfigurationException | SAXException | IOException e)
{ {
System.err.println(e.getMessage()); System.err.println(e.getMessage());
} }
return ConfigurationParser.getElements(rootElementTag);
}
public static void parseChannels(String path)
{
ParserResult parserResult = parseDocument(path, "channel");
List<ParserResultElement> elements = parserResult.getElements();
for (ParserResultElement el : elements)
{
ChannelBase res = getFactoryManager().getChannelFactoryInstance().makeChannel(el);
getFactoryManager().getPoolDatabaseInstance().getChannelPoolInstance().add(res);
}
} }
public static void parseNodes() public static void parseNodes(String path)
{ {
try ParserResult parserResult = parseDocument(path, "node");
List<ParserResultElement> elements = parserResult.getElements();
for (ParserResultElement el : elements)
{ {
// parse channel configuration NodeBase res = getFactoryManager().getNodeFactoryInstance().makeNode(el);
ConfigurationParser.parseDocument("conf/nodes.xml"); getFactoryManager().getPoolDatabaseInstance().getNodePoolInstance().add(res);
ParserResult parserResult = ConfigurationParser.getElements("node");
List<ParserResultElement> elements = parserResult.getElements();
for (ParserResultElement el : elements)
{
NodeBase res = getFactoryManager().getNodeFactoryInstance().makeNode(el);
getFactoryManager().getPoolDatabaseInstance().getNodePoolInstance().add(res);
}
}
catch (ParserConfigurationException | SAXException | IOException e)
{
System.err.println(e.getMessage());
} }
} }
public static void parseProducts() public static void parseProducts(String path)
{ {
try ParserResult parserResult = parseDocument(path, "product");
List<ParserResultElement> elements = parserResult.getElements();
for (ParserResultElement el : elements)
{ {
// parse channel configuration Product res = getFactoryManager().getProductFactoryInstance().makeProduct(el);
ConfigurationParser.parseDocument("conf/products.xml"); getFactoryManager().getPoolDatabaseInstance().getProductPoolInstance().add(res);
ParserResult parserResult = ConfigurationParser.getElements("product");
List<ParserResultElement> 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() public static void parseScenarios(String path)
{ {
try ParserResult parserResult = parseDocument(path, "scenario");
List<ParserResultElement> elements = parserResult.getElements();
for (ParserResultElement el : elements)
{ {
// parse channel configuration Scenario res = getFactoryManager().getScenarioFactoryInstance().makeScenario(el);
ConfigurationParser.parseDocument("conf/scenarios.xml"); getFactoryManager().getPoolDatabaseInstance().getScenarioPoolInstance().add(res);
ParserResult parserResult = ConfigurationParser.getElements("scenario");
List<ParserResultElement> 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());
} }
} }
} }