Interface AccountClassifier

All Known Implementing Classes:
CvmGeneralClassifier

public interface AccountClassifier
Interface Strategy para classificação de contas contábeis.

Define o contrato para interpretar linhas do plano de contas (ex: "3.01") e popular os campos sumarizados do FinancialStatement (Receita, Lucro, Patrimônio). Permite a extensão para múltiplos padrões contábeis (ex: Bancos vs Indústria) sem alterar o núcleo de importação.

Papel na Arquitetura: Isola a lógica de negócio contábil (o que é Receita?) da lógica de parsing (como ler CSV?). Isso permite adicionar suporte a novos planos de contas (ex: IFRS, US GAAP) apenas criando novas implementações desta interface.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    classify(FinancialStatement stmt, String code, String desc, BigDecimal value)
    Analisa uma linha contábil e atualiza o statement se a conta for relevante.
    boolean
    Determina se a linha deve ser armazenada detalhadamente no banco de dados.
  • Method Details

    • classify

      void classify(FinancialStatement stmt, String code, String desc, BigDecimal value)
      Analisa uma linha contábil e atualiza o statement se a conta for relevante.
      Parameters:
      stmt - O demonstrativo financeiro sendo construído (Estado Mutável).
      code - O código da conta (ex: "3.01").
      desc - A descrição da conta (ex: "RECEITA DE VENDAS").
      value - O valor monetário já normalizado (escala corrigida).
    • shouldStoreDetail

      boolean shouldStoreDetail(String code)
      Determina se a linha deve ser armazenada detalhadamente no banco de dados.

      Filtra contas analíticas de baixo valor para otimizar o armazenamento, mantendo apenas contas sintéticas (agregadoras) e indicadores chave.

      Parameters:
      code - O código da conta.
      Returns:
      true se a linha deve ser persistida na tabela `account_lines`.