id array length should match class array length

This commit is contained in:
rusefillc 2022-02-16 11:55:07 -05:00
parent b78306195c
commit 9a37d08403
2 changed files with 5 additions and 1 deletions

Binary file not shown.

View File

@ -102,6 +102,7 @@ public class PinoutLogic {
for (Map<String, Object> pin : data) { for (Map<String, Object> pin : data) {
Object pinId = pin.get("id"); Object pinId = pin.get("id");
Object pinClass = pin.get("class"); Object pinClass = pin.get("class");
String pinName = (String) pin.get("pin");
String pinTsName = (String) pin.get("ts_name"); String pinTsName = (String) pin.get("ts_name");
if (pinId == null || pinClass == null || pinTsName == null) { if (pinId == null || pinClass == null || pinTsName == null) {
continue; continue;
@ -110,9 +111,12 @@ public class PinoutLogic {
ArrayList<String> pinIds = (ArrayList<String>) pinId; ArrayList<String> pinIds = (ArrayList<String>) pinId;
if (!(pinClass instanceof ArrayList)) if (!(pinClass instanceof ArrayList))
throw new IllegalStateException("Expected multiple classes for " + pinIds); throw new IllegalStateException("Expected multiple classes for " + pinIds);
ArrayList<String> pinClassArray = (ArrayList<String>) pinClass;
if (pinIds.size()!=pinClassArray.size())
throw new IllegalStateException(pinName + ": id array length should match class array length");
for (int i = 0; i < pinIds.size(); i++) { for (int i = 0; i < pinIds.size(); i++) {
String id = pinIds.get(i); String id = pinIds.get(i);
addPinToList(id, pinTsName, ((ArrayList<String>) pinClass).get(i)); addPinToList(id, pinTsName, pinClassArray.get(i));
} }
} else if (pinId instanceof String) { } else if (pinId instanceof String) {
String pinIdString = (String) pinId; String pinIdString = (String) pinId;