CSVRecord row = e.getValue(); if (!row.isConsistent()) { logger.warn("WARNING: Skipping row {} because its size does not match the header size.", row.getRecordNumber());
while (iter.hasNext()) { CSVRecord nextRecord = iter.next(); if (nextRecord.isConsistent()==false) { continue;
@Override public boolean isConsistent() { return record.isConsistent(); }
@Test public void testCsvLineParserWithQuoting() throws IOException { CsvToKeyValueMapper.CsvLineParser lineParser = new CsvToKeyValueMapper.CsvLineParser(';', '"', '\\'); CSVRecord parsed = lineParser.parse("\"\\\"one\";\"\\;two\\\\\""); assertEquals("\"one", parsed.get(0)); assertEquals(";two\\", parsed.get(1)); assertTrue(parsed.isConsistent()); assertEquals(1, parsed.getRecordNumber()); } }
@Test public void testCsvLineParser() throws IOException { CsvToKeyValueMapper.CsvLineParser lineParser = new CsvToKeyValueMapper.CsvLineParser(';', '"', '\\'); CSVRecord parsed = lineParser.parse("one;two"); assertEquals("one", parsed.get(0)); assertEquals("two", parsed.get(1)); assertTrue(parsed.isConsistent()); assertEquals(1, parsed.getRecordNumber()); }
/** * Convert data in arrays (from CSV reader) to Map<String, Object>, the current input format for * graql templating. * @param data all bu first row of input file * @return given data in a map */ private Map<String, Object> parse(CSVRecord data){ if(!data.isConsistent()){ throw new RuntimeException("Invalid CSV " + data.toMap()); } return data.toMap().entrySet().stream() .filter((e) -> validValue(e.getValue())) .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); }
private static void addRow(CSVRecord record, Result result, Map<String, Type> header) { if (!record.isConsistent()) { log.warn("Record does not have the same number of fields as the header mapping. Skipping record: {}", record); return; } for (Map.Entry<String, Type> field : header.entrySet()) { String fieldName = field.getKey(); TypedObject fieldValue = getTyped(field.getValue(), record.get(fieldName)); result.addColumnRow(fieldName, fieldValue); } }
while (iter.hasNext()) { CSVRecord nextRecord = iter.next(); if (nextRecord.isConsistent()==false) { continue;
for (CSVRecord record : parser.getRecords()) { if (!record.isConsistent()) { List<String> args = Arrays.asList(new String[]{"" + (parser.getCurrentLineNumber() - 1), "" + headers.size(), if (!record.isConsistent()) { List<String> args = Arrays.asList(new String[]{"" + (parser.getCurrentLineNumber() - 1), "" + headers.size(),
@Override public Iterable<Element> _apply(final CSVRecord record) { if (!record.isConsistent()) { return Collections.emptyList();