Paste #265738

   
pasted on 11.10.2022 09:08
  • Edit to this paste
  • Print
  • Raw
  • Compare with paste
    #  
  • Toggle line numbers
  • Syntax highlighting  
Text paste
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@Service
@Slf4jpublic 
class CsvScannerImpl implements CsvScanner {
    private static final Integer PID_COL = 0;
    private static final Integer SO_COL = 1;
    private static final Integer CATEGORY_COL = 2;
    private static final Integer MAX_COL_SIZE = 3; 
    @SneakyThrows 

    @Override 
    public List<IdentificationDataHolder> parseCsv(InputStream inputCsv) {
        log.debug("parseCsv() method started"); 
        List<IdentificationDataHolder> parsedResult = new LinkedList<>();
        var bomInputStream = new BOMInputStream(inputCsv, false); 
        var csvReader = new CSVReaderBuilder(new InputStreamReader(bomInputStream)).withCSVParser(new CSVParserBuilder().build()).build();
        
        for (String[] csvLine : csvReader.readAll() ) {
            var csvEntryBuilder = IdentificationDataHolder.builder().pid(csvLine[PID_COL]).so(csvLine[SO_COL]); 
            if (csvLine.length == MAX_COL_SIZE) {
                csvEntryBuilder = csvEntryBuilder.category(csvLine[CATEGORY_COL]); 
            }
            parsedResult.add(csvEntryBuilder.build()); 
            }
        log.debug("parseCsv() method finished with result: {}",parsedResult); 
        return parsedResult; 
    }
}
Add Comment
Author