made Bravo parser more lenient, ignoring extra columns

Change-Id: Ieec433b4bd32fa7d283ac0045c37a4dd39aeafa6
This commit is contained in:
Axel Uhl
2017-03-11 17:52:57 +01:00
parent a40f4a2baa
commit e2fe0019a0
3 changed files with 9 additions and 6 deletions
@@ -64,7 +64,6 @@ public class BravoDataImportTest {
}
private void testImport(ImportData importData) throws FormatNotSupportedException, IOException {
bravoDataImporter.importFixes(importData.getInputStream(), (fixes, device) -> {
for (DoubleVectorFix fix : fixes) {
callbackCallCount++;
@@ -6,8 +6,10 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Serializable;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicLong;
import java.util.logging.Level;
@@ -142,10 +144,12 @@ public class BravoDataImporterImpl implements DoubleVectorFixImporter {
String header = headerTokens[j];
colIndicesInFile.put(header, j);
}
List<String> columnsInFix = metadata.getFileColumns();
if (colIndicesInFile.size() != columnsInFix.size() || !colIndicesInFile.keySet().containsAll(columnsInFix)) {
LOG.log(Level.SEVERE, "Missing headers");
throw new RuntimeException("Missing headers in import files");
List<String> requiredColumnsInFix = metadata.getTrackColumns();
if (!colIndicesInFile.keySet().containsAll(requiredColumnsInFix)) {
final Set<String> missingColumns = new HashSet<>(requiredColumnsInFix);
missingColumns.removeAll(colIndicesInFile.keySet());
LOG.log(Level.SEVERE, "Missing headers: "+missingColumns);
throw new RuntimeException("Missing headers "+missingColumns+" in import files");
}
return colIndicesInFile;
}