refactoring: nicer API

This commit is contained in:
rusefillc 2021-11-28 21:18:21 -05:00
parent d0fc494aa1
commit a24358f350
4 changed files with 18 additions and 27 deletions

View File

@ -10,6 +10,7 @@ import com.rusefi.util.SystemOut;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.*;
import static com.rusefi.ConfigField.BOOLEAN_T;
@ -159,6 +160,10 @@ public class ReaderState {
consumer.handleEndStruct(structure);
}
public void readBufferedReader(String inputString, List<ConfigurationConsumer> consumers) throws IOException {
readBufferedReader(new BufferedReader(new StringReader(inputString)), consumers);
}
public void readBufferedReader(BufferedReader definitionReader, List<ConfigurationConsumer> consumers) throws IOException {
for (ConfigurationConsumer consumer : consumers)
consumer.startFile();

View File

@ -21,7 +21,6 @@ public class BitParsingTest {
ReaderState.BIT + " fieldName\n" +
ReaderState.BIT + " fieldName2,\"si\",\"nada\";comment\n" +
"end_struct\n";
BufferedReader reader = new BufferedReader(new StringReader(inputString));
StringWriter sw = new StringWriter();
@ -31,7 +30,7 @@ public class BitParsingTest {
writeContent(fieldsSection, new TsFileContent("", ""), createOutput(sw));
}
};
state.readBufferedReader(reader, Collections.singletonList(javaFieldsConsumer));
state.readBufferedReader(inputString, Collections.singletonList(javaFieldsConsumer));
System.out.printf("start[" + sw + "]end");

View File

@ -20,10 +20,9 @@ public class ConfigFieldParserIssue1057Test {
String inputString = "struct pid_s\nbit activateAuxPid1;\n" +
"int fieldName;\n" +
"end_struct\n";
BufferedReader reader = new BufferedReader(new StringReader(inputString));
state.readBufferedReader(reader, Arrays.asList(javaFieldsConsumer));
state.readBufferedReader(inputString, Arrays.asList(javaFieldsConsumer));
assertEquals("\tpublic static final Field ACTIVATEAUXPID1 = Field.create(\"ACTIVATEAUXPID1\", 0, FieldType.BIT, 0);\n" +
"\tpublic static final Field UNUSEDBIT_1_1 = Field.create(\"UNUSEDBIT_1_1\", 0, FieldType.BIT, 1);\n" +

View File

@ -53,11 +53,10 @@ public class ConfigFieldParserTest {
"percent_t afr_typet;PID dTime;\"ms\", 1, 0, 0, 3000, 0\n" +
"end_struct\n";
ReaderState state = new ReaderState();
BufferedReader reader = new BufferedReader(new StringReader(test));
CharArrayWriter writer = new CharArrayWriter();
TestTSProjectConsumer tsProjectConsumer = new TestTSProjectConsumer(writer, "", state);
state.readBufferedReader(reader, Collections.singletonList(tsProjectConsumer));
state.readBufferedReader(test, Collections.singletonList(tsProjectConsumer));
assertEquals("afr_type = scalar, F32, 0, \"ms\", 1, 0, 0, 3000, 0\n" +
"afr_typet = scalar, F32, 4, \"ms\", 1, 0, 0, 3000, 0\n" +
"; total TS size = 8\n", new String(writer.toCharArray()));
@ -71,14 +70,13 @@ public class ConfigFieldParserTest {
"int afr_type1;PID dTime;\"ms\", 1, 0, 0, 3000, 0\n" +
"end_struct\n";
ReaderState state = new ReaderState();
BufferedReader reader = new BufferedReader(new StringReader(test));
BaseCHeaderConsumer consumer = new BaseCHeaderConsumer() {
@Override
public void endFile() {
}
};
state.readBufferedReader(reader, Collections.singletonList(consumer));
state.readBufferedReader(test, Collections.singletonList(consumer));
}
@Test
@ -108,10 +106,9 @@ public class ConfigFieldParserTest {
"\tint periodSec2;PID dTime;\"ms\", 1, 0, 0, 3000, 0\n" +
"end_struct\n";
ReaderState state = new ReaderState();
BufferedReader reader = new BufferedReader(new StringReader(test));
JavaFieldsConsumer javaFieldsConsumer = new TestJavaFieldsConsumer(state);
state.readBufferedReader(reader, Collections.singletonList(javaFieldsConsumer));
state.readBufferedReader(test, Collections.singletonList(javaFieldsConsumer));
assertEquals(16, TypesHelper.getElementSize(state, "pid_s"));
@ -126,8 +123,7 @@ public class ConfigFieldParserTest {
"#define ERROR_BUFFER_SIZE \"***\"\n" +
"end_struct\n" +
"";
BufferedReader reader = new BufferedReader(new StringReader(test));
new ReaderState().readBufferedReader(reader, Collections.emptyList());
new ReaderState().readBufferedReader(test, Collections.emptyList());
}
@Test(expected = IllegalStateException.class)
@ -136,8 +132,7 @@ public class ConfigFieldParserTest {
VariableRegistry.DEFINE + " show show_Hellen121vag_presets true\n" +
"end_struct\n" +
"";
BufferedReader reader = new BufferedReader(new StringReader(test));
new ReaderState().readBufferedReader(reader, Collections.emptyList());
new ReaderState().readBufferedReader(test, Collections.emptyList());
}
@Test
@ -150,9 +145,8 @@ public class ConfigFieldParserTest {
"end_struct\n" +
"";
BufferedReader reader = new BufferedReader(new StringReader(test));
ReaderState state = new ReaderState();
state.readBufferedReader(reader, Collections.emptyList());
state.readBufferedReader(test, Collections.emptyList());
assertEquals("#define ERROR_BUFFER_COUNT 120\n" +
"#define ERROR_BUFFER_SIZE 120\n" +
@ -168,13 +162,11 @@ public class ConfigFieldParserTest {
"end_struct\n" +
"";
BufferedReader reader = new BufferedReader(new StringReader(test));
CharArrayWriter writer = new CharArrayWriter();
ReaderState state = new ReaderState();
TSProjectConsumer tsProjectConsumer = new TestTSProjectConsumer(writer, "", state);
state.readBufferedReader(reader, Collections.singletonList(tsProjectConsumer));
state.readBufferedReader(test, Collections.singletonList(tsProjectConsumer));
assertEquals("periodMs = scalar, S16, 0, \"ms\", 0.1, 0, 0, 3000, 0\n" +
"periodMs2 = scalar, S16, 2, \"ms\", 1, 0, 0, 3000, 0\n" +
@ -192,10 +184,9 @@ public class ConfigFieldParserTest {
"\tint16_t periodMs;PID dTime;\"ms\", 1, 0, 0, 3000, 0\n" +
"end_struct\n" +
"";
BufferedReader reader = new BufferedReader(new StringReader(test));
JavaFieldsConsumer javaFieldsConsumer = new TestJavaFieldsConsumer(state);
state.readBufferedReader(reader, Collections.singletonList(javaFieldsConsumer));
state.readBufferedReader(test, Collections.singletonList(javaFieldsConsumer));
assertEquals("\tpublic static final Field VAR = Field.create(\"VAR\", 0, 120, FieldType.STRING);\n" +
"\tpublic static final Field PERIODMS = Field.create(\"PERIODMS\", 120, FieldType.INT16);\n" +
@ -209,10 +200,9 @@ public class ConfigFieldParserTest {
String test =
"#define SD_r 'r'\n" +
"";
BufferedReader reader = new BufferedReader(new StringReader(test));
JavaFieldsConsumer javaFieldsConsumer = new TestJavaFieldsConsumer(state);
state.readBufferedReader(reader, Collections.singletonList(javaFieldsConsumer));
state.readBufferedReader(test, Collections.singletonList(javaFieldsConsumer));
assertEquals("\tpublic static final char SD_r = 'r';\n" +
"",
@ -226,10 +216,9 @@ public class ConfigFieldParserTest {
"#define ERROR_BUFFER_SIZE 120\n" +
"#define ERROR_BUFFER_SIZE_H 0x120\n" +
"";
BufferedReader reader = new BufferedReader(new StringReader(test));
JavaFieldsConsumer javaFieldsConsumer = new TestJavaFieldsConsumer(state);
state.readBufferedReader(reader, Collections.singletonList(javaFieldsConsumer));
state.readBufferedReader(test, Collections.singletonList(javaFieldsConsumer));
assertEquals("\tpublic static final int ERROR_BUFFER_SIZE = 120;\n" +
"\tpublic static final int ERROR_BUFFER_SIZE_H = 0x120;\n" +
@ -261,11 +250,10 @@ public class ConfigFieldParserTest {
"end_struct\n" +
"" +
"";
BufferedReader reader = new BufferedReader(new StringReader(test));
JavaFieldsConsumer javaFieldsConsumer = new TestJavaFieldsConsumer(state);
state.readBufferedReader(reader, Collections.singletonList(javaFieldsConsumer));
state.readBufferedReader(test, Collections.singletonList(javaFieldsConsumer));
assertEquals("\tpublic static final Field OFFSET = Field.create(\"OFFSET\", 0, FieldType.INT16);\n" +