From 84879c3049ba916fdbd749c8e00402c3a408c833 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sat, 23 Oct 2021 20:02:22 -0400 Subject: [PATCH] refactoring --- .../java/com/rusefi/ConfigDefinition.java | 2 +- .../src/main/java/com/rusefi/ReaderState.java | 20 ++++++++++++------- .../com/rusefi/test/ConfigDefinitionTest.java | 3 ++- .../src/main/java/com/rusefi/EnumsReader.java | 18 +++++++++-------- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java index 97abe4c277..cd4d8fd202 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java @@ -230,7 +230,7 @@ public class ConfigDefinition { if (!enumInputFiles.isEmpty()) { for (String ef : enumInputFiles) { - state.enumsReader.read(".", ef); + state.read(new FileReader(ef)); } SystemOut.println(state.enumsReader.getEnums() + " total enumsReader"); diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ReaderState.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ReaderState.java index 75fe5586e3..96948f9d77 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ReaderState.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/ReaderState.java @@ -7,6 +7,7 @@ import com.rusefi.util.SystemOut; import java.io.BufferedReader; import java.io.IOException; +import java.io.Reader; import java.util.*; import static com.rusefi.ConfigField.BOOLEAN_T; @@ -67,14 +68,19 @@ public class ReaderState { return line.length() == 0 || line.startsWith("!") || line.startsWith("//"); } - private void handleCustomLine(ReaderState state, String line) { + void read(Reader reader) throws IOException { + Map newEnums = EnumsReader.readStatic(reader); + enumsReader.enums.putAll(newEnums); + } + + private void handleCustomLine(String line) { line = line.substring(CUSTOM.length() + 1).trim(); int index = line.indexOf(' '); String name = line.substring(0, index); - String autoEnumOptions = state.variableRegistry.getEnumOptionsForTunerStudio(state.enumsReader, name); + String autoEnumOptions = variableRegistry.getEnumOptionsForTunerStudio(enumsReader, name); if (autoEnumOptions != null) { - state.variableRegistry.register(name + "_auto_enum", autoEnumOptions); + variableRegistry.register(name + "_auto_enum", autoEnumOptions); } line = line.substring(index).trim(); @@ -82,9 +88,9 @@ public class ReaderState { String customSize = line.substring(0, index); String tunerStudioLine = line.substring(index).trim(); - tunerStudioLine = state.variableRegistry.applyVariables(tunerStudioLine); + tunerStudioLine = variableRegistry.applyVariables(tunerStudioLine); int size = parseSize(customSize, line); - state.tsCustomSize.put(name, size); + tsCustomSize.put(name, size); RawIniFile.Line rawLine = new RawIniFile.Line(tunerStudioLine); if (rawLine.getTokens()[0].equals("bits")) { @@ -103,7 +109,7 @@ public class ReaderState { tunerStudioLine += ", \"INVALID\""; } - state.tsCustomLine.put(name, tunerStudioLine); + tsCustomLine.put(name, tunerStudioLine); } public int parseSize(String customSize, String line) { @@ -169,7 +175,7 @@ public class ReaderState { handleBitLine(this, line); } else if (ConfigDefinition.startsWithToken(line, CUSTOM)) { - handleCustomLine(this, line); + handleCustomLine(line); } else if (ConfigDefinition.startsWithToken(line, DEFINE)) { /** diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/test/ConfigDefinitionTest.java b/java_tools/configuration_definition/src/main/java/com/rusefi/test/ConfigDefinitionTest.java index 457071b97b..5d7e0b2ab4 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/test/ConfigDefinitionTest.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/test/ConfigDefinitionTest.java @@ -6,6 +6,7 @@ import com.rusefi.VariableRegistry; import org.junit.Test; import java.io.File; +import java.io.FileReader; import java.io.IOException; import static org.junit.Assert.assertNotNull; @@ -16,7 +17,7 @@ public class ConfigDefinitionTest { @Test public void testEnumIntoType() throws IOException { EnumsReader enumsReader = new EnumsReader(); - enumsReader.read(FIRMWARE, "controllers/algo/rusefi_enums.h"); + enumsReader.read(new FileReader(FIRMWARE + File.separator + "controllers/algo/rusefi_enums.h")); VariableRegistry variableRegistry = new VariableRegistry(); diff --git a/java_tools/enum_to_string/src/main/java/com/rusefi/EnumsReader.java b/java_tools/enum_to_string/src/main/java/com/rusefi/EnumsReader.java index d42f699666..5f457a3c48 100644 --- a/java_tools/enum_to_string/src/main/java/com/rusefi/EnumsReader.java +++ b/java_tools/enum_to_string/src/main/java/com/rusefi/EnumsReader.java @@ -9,10 +9,9 @@ import java.io.*; import java.util.*; public class EnumsReader { - public static final String ENUMCLASS_PREFIX = "enumclass"; - private final Map currentValues = new TreeMap<>(); + private static final String ENUMCLASS_PREFIX = "enumclass"; - private final Map enums = new TreeMap<>(); + protected final Map enums = new TreeMap<>(); @NotNull static List getSortedByOrder(Map brain_pin_e) { @@ -25,16 +24,19 @@ public class EnumsReader { return enums; } - public EnumsReader read(String path, String fileName) throws IOException { - return read(new FileReader(path + File.separator + fileName)); + public EnumsReader read(Reader in) throws IOException { + enums.putAll(readStatic(in)); + return this; } - public EnumsReader read(Reader in) throws IOException { + public static Map readStatic(Reader in) throws IOException { boolean isInsideEnum = false; BufferedReader reader = new BufferedReader(in); String line; String enumName = null; boolean isEnumClass = false; + Map currentValues = new TreeMap<>(); + Map enums = new TreeMap<>(); boolean withAutoValue = false; @@ -89,10 +91,10 @@ public class EnumsReader { } } } - return this; + return enums; } - private void validateValues(Map currentValues) { + private static void validateValues(Map currentValues) { for (Map.Entry entry : currentValues.entrySet()) { int v = entry.getValue().getIntValue(); if (v < 0 || v >= currentValues.size())