compact pinout enum syntax
This commit is contained in:
parent
56d5d77300
commit
f2ffb337bb
Binary file not shown.
|
@ -13,6 +13,8 @@ import static com.rusefi.output.JavaSensorsConsumer.quote;
|
||||||
public class PinoutLogic {
|
public class PinoutLogic {
|
||||||
private static final String CONFIG_BOARDS = "config/boards/";
|
private static final String CONFIG_BOARDS = "config/boards/";
|
||||||
private static final String CONNECTORS = "/connectors";
|
private static final String CONNECTORS = "/connectors";
|
||||||
|
private static final String QUOTED_NONE = quote("NONE");
|
||||||
|
private static final String QUOTED_INVALID = quote("INVALID");
|
||||||
|
|
||||||
private final File[] boardYamlFiles;
|
private final File[] boardYamlFiles;
|
||||||
private final String boardName;
|
private final String boardName;
|
||||||
|
@ -71,20 +73,33 @@ public class PinoutLogic {
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static String enumToOptionsList(String nothingName, EnumsReader.EnumState enumList, ArrayList<String> values) {
|
public static String enumToOptionsList(String nothingName, EnumsReader.EnumState enumList, ArrayList<String> values) {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder simpleForm = new StringBuilder();
|
||||||
|
StringBuilder smartForm = new StringBuilder();
|
||||||
for (int i = 0; i < values.size(); i++) {
|
for (int i = 0; i < values.size(); i++) {
|
||||||
if (sb.length() > 0)
|
appendCommandIfNeeded(simpleForm);
|
||||||
sb.append(",");
|
|
||||||
String key = findKey(enumList, i);
|
String key = findKey(enumList, i);
|
||||||
if (key.equals(nothingName)) {
|
if (key.equals(nothingName)) {
|
||||||
sb.append("\"NONE\"");
|
simpleForm.append(QUOTED_NONE);
|
||||||
|
appendCommandIfNeeded(smartForm);
|
||||||
|
smartForm.append(i + "=" + QUOTED_NONE);
|
||||||
|
|
||||||
} else if (values.get(i) == null) {
|
} else if (values.get(i) == null) {
|
||||||
sb.append(quote("INVALID"));
|
simpleForm.append(QUOTED_INVALID);
|
||||||
} else {
|
} else {
|
||||||
sb.append("\"" + values.get(i) + "\"");
|
appendCommandIfNeeded(smartForm);
|
||||||
|
String quotedValue = quote(values.get(i));
|
||||||
|
smartForm.append(i + "=" + quotedValue);
|
||||||
|
simpleForm.append(quotedValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return sb.toString();
|
if (smartForm.length() < simpleForm.length())
|
||||||
|
return smartForm.toString();
|
||||||
|
return simpleForm.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void appendCommandIfNeeded(StringBuilder sb) {
|
||||||
|
if (sb.length() > 0)
|
||||||
|
sb.append(",");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String findKey(EnumsReader.EnumState enumList, int i) {
|
private static String findKey(EnumsReader.EnumState enumList, int i) {
|
||||||
|
|
|
@ -20,10 +20,17 @@ public class PinoutLogicTest {
|
||||||
currentValues.put("KEY4", new Value("NO", "4"));
|
currentValues.put("KEY4", new Value("NO", "4"));
|
||||||
EnumsReader.EnumState enumState = new EnumsReader.EnumState(currentValues, "pins", true);
|
EnumsReader.EnumState enumState = new EnumsReader.EnumState(currentValues, "pins", true);
|
||||||
|
|
||||||
ArrayList<String> list = new ArrayList<>(Arrays.asList("1", "NO", null, null, null, null, null, "10"));
|
{
|
||||||
|
ArrayList<String> list = new ArrayList<>(Arrays.asList("1", "NO", "10"));
|
||||||
|
String result = PinoutLogic.enumToOptionsList("NO", enumState, list);
|
||||||
|
assertEquals("\"1\",\"NO\",\"10\"", result);
|
||||||
|
|
||||||
String result = PinoutLogic.enumToOptionsList("NO", enumState, list);
|
}
|
||||||
assertEquals("\"1\",\"NO\",\"INVALID\",\"INVALID\",\"INVALID\",\"INVALID\",\"INVALID\",\"10\"", result);
|
|
||||||
|
|
||||||
|
{
|
||||||
|
ArrayList<String> list = new ArrayList<>(Arrays.asList("1", "NO", null, null, null, null, null, "10"));
|
||||||
|
String result = PinoutLogic.enumToOptionsList("NO", enumState, list);
|
||||||
|
assertEquals("0=\"1\",1=\"NO\",7=\"10\"", result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue