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

br.com.objectos.jabuticava.serasa.relato.factoring.HeaderConciliacaoParser 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.CnpjFormatter;
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 HeaderConciliacaoParser implements RecordMatcher, RecordParser {
  private static final HeaderConciliacaoParser INSTANCE = new HeaderConciliacaoParser();

  private static final String id = "00";

  private static final String identificacao = "RELATO COMP NEGOCIOS";

  private static final String concilia = "CONCILIA";

  private static final String periodicidade = "D";

  private static final String segmentoFactoring = "028";

  private static final String brancos0 = "                             ";

  private static final String identificacaoVersao = "V.";

  private static final String versao = "01";

  private static final String brancos1 = "                          ";

  private HeaderConciliacaoParser() {
  }

  public static RecordParser get() {
    return INSTANCE;
  }

  public static RecordMatcher getMatcher() {
    return INSTANCE;
  }

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

  @Override
  public HeaderConciliacao parse(FlatFileReader file) throws RecordParseException {
    Record record = file.recordReader()
        .fixed(id)
        .fixed(identificacao)
        .custom(14, new CnpjFormatter())
        .fixed(concilia)
        .localDate(LocalDatePattern.YYYYMMDD)
        .fixed(periodicidade)
        .text(15)
        .fixed(segmentoFactoring)
        .fixed(brancos0)
        .fixed(identificacaoVersao)
        .fixed(versao)
        .fixed(brancos1)
        .read();

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

    return new HeaderConciliacaoBuilderPojo()
        .cnpj(record. get())
        .dataFinal(record. get())
        .reservado(record. get())
        .build();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy