mirror of https://github.com/rusefi/rusefi-1.git
refactoring
This commit is contained in:
parent
b5c122408c
commit
6e4c241d50
|
@ -230,7 +230,7 @@ public class ConfigDefinition {
|
||||||
|
|
||||||
if (!enumInputFiles.isEmpty()) {
|
if (!enumInputFiles.isEmpty()) {
|
||||||
for (String ef : enumInputFiles) {
|
for (String ef : enumInputFiles) {
|
||||||
state.enumsReader.read(".", ef);
|
state.read(new FileReader(ef));
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemOut.println(state.enumsReader.getEnums() + " total enumsReader");
|
SystemOut.println(state.enumsReader.getEnums() + " total enumsReader");
|
||||||
|
|
|
@ -7,6 +7,7 @@ import com.rusefi.util.SystemOut;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.Reader;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static com.rusefi.ConfigField.BOOLEAN_T;
|
import static com.rusefi.ConfigField.BOOLEAN_T;
|
||||||
|
@ -67,14 +68,19 @@ public class ReaderState {
|
||||||
return line.length() == 0 || line.startsWith("!") || line.startsWith("//");
|
return line.length() == 0 || line.startsWith("!") || line.startsWith("//");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleCustomLine(ReaderState state, String line) {
|
void read(Reader reader) throws IOException {
|
||||||
|
Map<String, EnumsReader.EnumState> newEnums = EnumsReader.readStatic(reader);
|
||||||
|
enumsReader.enums.putAll(newEnums);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void handleCustomLine(String line) {
|
||||||
line = line.substring(CUSTOM.length() + 1).trim();
|
line = line.substring(CUSTOM.length() + 1).trim();
|
||||||
int index = line.indexOf(' ');
|
int index = line.indexOf(' ');
|
||||||
String name = line.substring(0, index);
|
String name = line.substring(0, index);
|
||||||
|
|
||||||
String autoEnumOptions = state.variableRegistry.getEnumOptionsForTunerStudio(state.enumsReader, name);
|
String autoEnumOptions = variableRegistry.getEnumOptionsForTunerStudio(enumsReader, name);
|
||||||
if (autoEnumOptions != null) {
|
if (autoEnumOptions != null) {
|
||||||
state.variableRegistry.register(name + "_auto_enum", autoEnumOptions);
|
variableRegistry.register(name + "_auto_enum", autoEnumOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
line = line.substring(index).trim();
|
line = line.substring(index).trim();
|
||||||
|
@ -82,9 +88,9 @@ public class ReaderState {
|
||||||
String customSize = line.substring(0, index);
|
String customSize = line.substring(0, index);
|
||||||
|
|
||||||
String tunerStudioLine = line.substring(index).trim();
|
String tunerStudioLine = line.substring(index).trim();
|
||||||
tunerStudioLine = state.variableRegistry.applyVariables(tunerStudioLine);
|
tunerStudioLine = variableRegistry.applyVariables(tunerStudioLine);
|
||||||
int size = parseSize(customSize, line);
|
int size = parseSize(customSize, line);
|
||||||
state.tsCustomSize.put(name, size);
|
tsCustomSize.put(name, size);
|
||||||
|
|
||||||
RawIniFile.Line rawLine = new RawIniFile.Line(tunerStudioLine);
|
RawIniFile.Line rawLine = new RawIniFile.Line(tunerStudioLine);
|
||||||
if (rawLine.getTokens()[0].equals("bits")) {
|
if (rawLine.getTokens()[0].equals("bits")) {
|
||||||
|
@ -103,7 +109,7 @@ public class ReaderState {
|
||||||
tunerStudioLine += ", \"INVALID\"";
|
tunerStudioLine += ", \"INVALID\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
state.tsCustomLine.put(name, tunerStudioLine);
|
tsCustomLine.put(name, tunerStudioLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int parseSize(String customSize, String line) {
|
public int parseSize(String customSize, String line) {
|
||||||
|
@ -169,7 +175,7 @@ public class ReaderState {
|
||||||
handleBitLine(this, line);
|
handleBitLine(this, line);
|
||||||
|
|
||||||
} else if (ConfigDefinition.startsWithToken(line, CUSTOM)) {
|
} else if (ConfigDefinition.startsWithToken(line, CUSTOM)) {
|
||||||
handleCustomLine(this, line);
|
handleCustomLine(line);
|
||||||
|
|
||||||
} else if (ConfigDefinition.startsWithToken(line, DEFINE)) {
|
} else if (ConfigDefinition.startsWithToken(line, DEFINE)) {
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -6,6 +6,7 @@ import com.rusefi.VariableRegistry;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
@ -16,7 +17,7 @@ public class ConfigDefinitionTest {
|
||||||
@Test
|
@Test
|
||||||
public void testEnumIntoType() throws IOException {
|
public void testEnumIntoType() throws IOException {
|
||||||
EnumsReader enumsReader = new EnumsReader();
|
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();
|
VariableRegistry variableRegistry = new VariableRegistry();
|
||||||
|
|
||||||
|
|
|
@ -9,10 +9,9 @@ import java.io.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class EnumsReader {
|
public class EnumsReader {
|
||||||
public static final String ENUMCLASS_PREFIX = "enumclass";
|
private static final String ENUMCLASS_PREFIX = "enumclass";
|
||||||
private final Map<String, Value> currentValues = new TreeMap<>();
|
|
||||||
|
|
||||||
private final Map<String, EnumState> enums = new TreeMap<>();
|
protected final Map<String, EnumState> enums = new TreeMap<>();
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
static List<Value> getSortedByOrder(Map<String, Value> brain_pin_e) {
|
static List<Value> getSortedByOrder(Map<String, Value> brain_pin_e) {
|
||||||
|
@ -25,16 +24,19 @@ public class EnumsReader {
|
||||||
return enums;
|
return enums;
|
||||||
}
|
}
|
||||||
|
|
||||||
public EnumsReader read(String path, String fileName) throws IOException {
|
public EnumsReader read(Reader in) throws IOException {
|
||||||
return read(new FileReader(path + File.separator + fileName));
|
enums.putAll(readStatic(in));
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public EnumsReader read(Reader in) throws IOException {
|
public static Map<String, EnumState> readStatic(Reader in) throws IOException {
|
||||||
boolean isInsideEnum = false;
|
boolean isInsideEnum = false;
|
||||||
BufferedReader reader = new BufferedReader(in);
|
BufferedReader reader = new BufferedReader(in);
|
||||||
String line;
|
String line;
|
||||||
String enumName = null;
|
String enumName = null;
|
||||||
boolean isEnumClass = false;
|
boolean isEnumClass = false;
|
||||||
|
Map<String, Value> currentValues = new TreeMap<>();
|
||||||
|
Map<String, EnumState> enums = new TreeMap<>();
|
||||||
|
|
||||||
boolean withAutoValue = false;
|
boolean withAutoValue = false;
|
||||||
|
|
||||||
|
@ -89,10 +91,10 @@ public class EnumsReader {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return this;
|
return enums;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateValues(Map<String, Value> currentValues) {
|
private static void validateValues(Map<String, Value> currentValues) {
|
||||||
for (Map.Entry<String, Value> entry : currentValues.entrySet()) {
|
for (Map.Entry<String, Value> entry : currentValues.entrySet()) {
|
||||||
int v = entry.getValue().getIntValue();
|
int v = entry.getValue().getIntValue();
|
||||||
if (v < 0 || v >= currentValues.size())
|
if (v < 0 || v >= currentValues.size())
|
||||||
|
|
Loading…
Reference in New Issue