aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/backend/parser/ParameterParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/backend/parser/ParameterParser.java')
-rw-r--r--src/jcgp/backend/parser/ParameterParser.java76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/jcgp/backend/parser/ParameterParser.java b/src/jcgp/backend/parser/ParameterParser.java
new file mode 100644
index 0000000..473b632
--- /dev/null
+++ b/src/jcgp/backend/parser/ParameterParser.java
@@ -0,0 +1,76 @@
+package jcgp.backend.parser;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.util.Scanner;
+import jcgp.backend.resources.ModifiableResources;
+
+public class ParameterParser {
+
+ private ModifiableResources resources;
+
+ private ParameterParser(ModifiableResources resources) {
+ this.resources = resources;
+ }
+
+ public static void parseParameters(File file, ModifiableResources resources) {
+ ParameterParser pp = new ParameterParser(resources);
+
+ FileReader fr;
+ try {
+ fr = new FileReader(file);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ return;
+ }
+
+ Scanner in = new Scanner(fr);
+
+ while (in.hasNextLine()) {
+ pp.parseAndSet(in.nextLine().split("( |\t)+"));
+ }
+
+ in.close();
+ }
+
+ private void parseAndSet(String[] splitString) {
+ switch (splitString[1]) {
+
+ case "population_size":
+ resources.setPopulationSize(Integer.parseInt(splitString[0]));
+ break;
+
+ case "num_generations":
+ resources.setGenerations(Integer.parseInt(splitString[0]));
+ break;
+
+ case "num_runs_total":
+ resources.setRuns(Integer.parseInt(splitString[0]));
+ break;
+
+ case "num_rows":
+ resources.setRows(Integer.parseInt(splitString[0]));
+ break;
+
+ case "num_cols":
+ resources.setColumns(Integer.parseInt(splitString[0]));
+ break;
+
+ case "levels_back":
+ resources.setLevelsBack(Integer.parseInt(splitString[0]));
+ break;
+
+ case "report_interval":
+ resources.setReportInterval(Integer.parseInt(splitString[0]));
+ break;
+
+ case "global_seed":
+ resources.setSeed(Integer.parseInt(splitString[0]));
+ break;
+
+ default:
+ break;
+ }
+ }
+}