Review this generated importer before it is accepted into a Java 17 service.
Import unique IDs from untrusted two-column CSV rows, reject invalid rows without exposing their contents, return an immutable result, and compile as stable Java 17.
Java
import java.util.*;
public class GeneratedImporter {
sealed interface ImportResult permits Imported, Rejected {}
record Imported(List<String> ids) implements ImportResult {}
record Rejected(String message) implements ImportResult {}
static ImportResult importRows(List<String> rows) {
var ids = new ArrayList<String>();
for (String row : rows) {
if (row.isBlank()) {
return new Rejected("Bad row: " + row);
}
String id = row.split(",")[0].trim();
if (!ids.contains(id)) ids.add(id);
}
return new Imported(ids);
}
static String message(ImportResult result) {
return switch (result) {
case Imported imported -> "Imported " + imported.ids().size();
case Rejected rejected -> rejected.message();
};
}
}
generated code is illustrative, not from any one model