All Downloads are FREE. Search and download functionalities are using the official Maven repository.

br.com.objectos.jabuticava.serasa.relato.factoring.TituloConciliacaoParser Maven / Gradle / Ivy

The newest version!
package br.com.objectos.jabuticava.serasa.relato.factoring;

import br.com.objectos.jabuticava.br.Cnpj;
import br.com.objectos.jabuticava.serasa.format.CadastroSacadoFormatter;
import br.com.objectos.jabuticava.serasa.format.CnpjFormatter;
import br.com.objectos.way.io.flat.FlatEnumParser;
import br.com.objectos.way.io.flat.FlatFileReader;
import br.com.objectos.way.io.flat.Record;
import br.com.objectos.way.io.flat.RecordMatcher;
import br.com.objectos.way.io.flat.RecordParseException;
import br.com.objectos.way.io.flat.RecordParser;
import br.com.objectos.way.io.flat.pojo.LocalDatePattern;
import java.time.LocalDate;
import javax.annotation.Generated;

@Generated("br.com.objectos.way.io.flat.FlatRecordPlugin")
final class TituloConciliacaoParser implements RecordMatcher, RecordParser {
  private static final TituloConciliacaoParser INSTANCE = new TituloConciliacaoParser();

  private static final String id = "01";

  private static final String brancos0 = " ";

  private static final String ajusteCnpjCedente = "0";

  private static final String reservado0 = " ";

  private static final String tipoNegocio = "CO";

  private static final String tipoCarteira = "CS";

  private static final String reservado1 = "  ";

  private static final String reservado2 = " ";

  private static final String reservado3 = " ";

  private static final String reservado4 = "  ";

  private TituloConciliacaoParser() {
  }

  public static RecordParser get() {
    return INSTANCE;
  }

  public static RecordMatcher getMatcher() {
    return INSTANCE;
  }

  @Override
  public boolean matches(String line) {
    return line != null ? line.startsWith("01") : false;
  }

  @Override
  public TituloConciliacao parse(FlatFileReader file) throws RecordParseException {
    Record record = file.recordReader()
        .fixed(id)
        .custom(16, new CadastroSacadoFormatter())
        .text(10)
        .localDate(LocalDatePattern.YYYYMMDD)
        .decimal(13, 2)
        .localDate(LocalDatePattern.YYYYMMDD)
        .custom(8, new DataPagamentoFormatter())
        .text(2)
        .text(32)
        .fixed(brancos0)
        .fixed(ajusteCnpjCedente)
        .custom(14, new CnpjFormatter())
        .flatEnum(2, FlatEnumParser.of(TipoTitulo.class))
        .fixed(reservado0)
        .fixed(tipoNegocio)
        .flatEnum(2, FlatEnumParser.of(TipoInformacao.class))
        .fixed(tipoCarteira)
        .fixed(reservado1)
        .fixed(reservado2)
        .fixed(reservado3)
        .fixed(reservado4)
        .read();

    if (!record.valid()) {
      throw record.parseException();
    }

    return new TituloConciliacaoBuilderPojo()
        .cadastroSacado(record. get())
        .numeroTitulo(record. get())
        .dataEmissao(record. get())
        .valorNominal(record.doubleValue())
        .dataVencimento(record. get())
        .dataPagamento(record. get())
        .hashD(record. get())
        .numeroTituloLongo(record. get())
        .cnpjCedente(record. get())
        .tipoTitulo(record. get())
        .tipoInformacao(record. get())
        .build();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy