Interface XlsProcessor


public interface XlsProcessor
SPI do processador de um tipo de arquivo. Introduzida pelo seam (não havia interface comum: onpetro tinha 8 processadores com assinaturas não-uniformes selecionados por um switch; vantroba tinha fluxo fixo). Cada processador de domínio do app implementa esta interface; o esqueleto despacha por tipo() num Map (mata o switch de 8 argumentos — over-eng menor do BI, R5).

A chave de tipo é um String (não um enum do app) para o esqueleto ficar agnóstico de domínio — o app define suas constantes de tipo.

  • Method Details

    • tipo

      String tipo()
      Chave do tipo de arquivo que este processador trata (ex.: "COMPRAS", "FATURAMENTO"). Usada como chave de dispatch.
      Returns:
      a chave de tipo, única entre os processadores do app
    • processar

      ResultadoProcessamento processar(byte[] conteudo, String nomeArquivo, Consumer<String> log)
      Processa o arquivo: lê (via XlsReader), mapeia para domínio e persiste (via BulkUpsertStrategy), devolvendo o resultado com métricas.
      Parameters:
      conteudo - bytes do arquivo
      nomeArquivo - nome do arquivo (alguns tipos extraem período do nome)
      log - recebe linhas de progresso legíveis para acompanhamento
      Returns:
      resultado do processamento (sucesso com métricas, ou ignorado)