Class CsvLineParser
java.lang.Object
com.raphaelsalles.backend.domain.service.importer.csv.CsvLineParser
Utilitário de Parsing de Linhas CSV.
Propósito: Extrair e converter dados brutos (Strings) de arquivos CSV em tipos Java (BigDecimal, LocalDate). Lida com formatação brasileira (vírgula decimal) e sanitização de strings.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static Stringstatic StringextractCnpj(String[] cols, Map<String, Integer> map) static LocalDateextractDate(String[] cols, Map<String, Integer> map) static Stringstatic booleanVerifica se o valor é matematicamente zero ou nulo.static BigDecimalParseia o valor e aplica a escala monetária (MIL) se necessário.static BigDecimal
-
Field Details
-
DATE_FMT
-
-
Constructor Details
-
CsvLineParser
public CsvLineParser()
-
-
Method Details
-
extractCnpj
-
extractDate
-
extractString
-
isEffectivelyZero
Verifica se o valor é matematicamente zero ou nulo.Nota de Auditoria: Usa BigDecimal para evitar problemas de precisão de ponto flutuante.
- Parameters:
s- A string crua do CSV.- Returns:
- true se for nulo, vazio, "null" ou 0.00...
-
safeDecimal
-
parseDecimalWithScale
public static BigDecimal parseDecimalWithScale(String rawValue, String[] cols, Map<String, Integer> map, Integer scaleIndex) Parseia o valor e aplica a escala monetária (MIL) se necessário.- Parameters:
rawValue- Valor bruto.cols- Array de colunas.map- Mapa de cabeçalho.scaleIndex- Índice da coluna de escala (MIL/UNIDADE).- Returns:
- Valor decimal ajustado.
-
clean
-