refactoring

This commit is contained in:
rusefillc 2022-04-18 00:22:36 -04:00
parent 5a5ae49d27
commit 282eec37e6
4 changed files with 13 additions and 9 deletions

View File

@ -2,6 +2,7 @@ package com.rusefi;
import com.devexperts.logging.Logging;
import com.rusefi.core.Pair;
import com.rusefi.output.ConfigStructure;
import com.rusefi.output.JavaFieldsConsumer;
import java.util.Arrays;
@ -95,6 +96,10 @@ public class ConfigField {
return Integer.parseInt(s);
}
public ConfigStructure getStructureType() {
return getState().structures.get(getType());
}
public boolean isArray() {
return arraySizeVariableName != null || arraySizes.length != 0;
}

View File

@ -3,18 +3,17 @@ package com.rusefi.output;
import com.rusefi.ConfigField;
import com.rusefi.ReaderState;
import java.io.IOException;
import java.util.List;
public abstract class FieldsStrategy {
public int run(ReaderState state, ConfigStructure structure, int sensorTsPosition) throws IOException {
public int run(ReaderState state, ConfigStructure structure, int sensorTsPosition) {
if (state.stack.isEmpty()) {
return writeFields(structure.tsFields, "", sensorTsPosition);
}
return sensorTsPosition;
}
protected int writeFields(List<ConfigField> tsFields, String prefix, int tsPosition) throws IOException {
protected int writeFields(List<ConfigField> tsFields, String prefix, int tsPosition) {
FieldIterator iterator = new FieldIterator(tsFields);
for (int i = 0; i < tsFields.size(); i++) {
iterator.start(i);
@ -25,6 +24,6 @@ public abstract class FieldsStrategy {
return tsPosition;
}
abstract int writeOneField(FieldIterator iterator, String prefix, int tsPosition) throws IOException;
abstract int writeOneField(FieldIterator iterator, String prefix, int tsPosition);
}

View File

@ -25,7 +25,7 @@ public abstract class JavaFieldsConsumer implements ConfigurationConsumer {
return content.toString();
}
private void writeJavaFieldName(String nameWithPrefix, int tsPosition, double scale) throws IOException {
private void writeJavaFieldName(String nameWithPrefix, int tsPosition, double scale) {
content.append("\tpublic static final Field ");
allFields.append("\t" + nameWithPrefix.toUpperCase() + "," + EOL);
content.append(nameWithPrefix.toUpperCase());
@ -50,7 +50,7 @@ public abstract class JavaFieldsConsumer implements ConfigurationConsumer {
public void handleEndStruct(ReaderState readerState, ConfigStructure structure) throws IOException {
FieldsStrategy fieldsStrategy = new FieldsStrategy() {
protected int writeOneField(FieldIterator iterator, String prefix, int tsPosition) throws IOException {
protected int writeOneField(FieldIterator iterator, String prefix, int tsPosition) {
ConfigField prev = iterator.getPrev();
ConfigField configField = iterator.cf;
ConfigField next = iterator.next;
@ -62,7 +62,7 @@ public abstract class JavaFieldsConsumer implements ConfigurationConsumer {
if (configField.getName().equals(prev.getName())) {
return tsPosition;
}
ConfigStructure cs = configField.getState().structures.get(configField.getType());
ConfigStructure cs = configField.getStructureType();
if (cs != null) {
String extraPrefix = cs.withPrefix ? configField.getName() + "_" : "";
return writeFields(cs.tsFields, prefix + extraPrefix, tsPosition);

View File

@ -37,7 +37,7 @@ public class TsOutput {
public int run(ReaderState state, ConfigStructure structure, int sensorTsPosition) throws IOException {
FieldsStrategy strategy = new FieldsStrategy() {
@Override
public int writeOneField(FieldIterator it, String prefix, int tsPosition) throws IOException {
public int writeOneField(FieldIterator it, String prefix, int tsPosition) {
ConfigField configField = it.cf;
ConfigField next = it.next;
int bitIndex = it.bitState.get();
@ -49,7 +49,7 @@ public class TsOutput {
return tsPosition;
}
ConfigStructure cs = configField.getState().structures.get(configField.getType());
ConfigStructure cs = configField.getStructureType();
if (configField.getComment() != null && configField.getComment().trim().length() > 0 && cs == null) {
settingContextHelp.append("\t" + nameWithPrefix + " = \"" + configField.getCommentContent() + "\"" + EOL);
}