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

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

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

import br.com.objectos.jabuticava.br.CadastroRFB;
import br.com.objectos.jabuticava.serasa.format.CadastroRfbFormatter;
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 TempoRelacionamentoParser implements RecordMatcher, RecordParser {
  private static final TempoRelacionamentoParser INSTANCE = new TempoRelacionamentoParser();

  private static final String id = "01";

  private static final String brancos0 = "                                      ";

  private static final String brancos1 = "                                  ";

  private static final String brancos2 = " ";

  private static final String brancos3 = "                              ";

  private TempoRelacionamentoParser() {
  }

  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 TempoRelacionamento parse(FlatFileReader file) throws RecordParseException {
    Record record = file.recordReader()
        .fixed(id)
        .custom(14, new CadastroRfbFormatter())
        .flatEnum(2, FlatEnumParser.of(TempoRelacionamentoTipo.class))
        .localDate(LocalDatePattern.YYYYMMDD)
        .flatEnum(1, FlatEnumParser.of(TipoCliente.class))
        .fixed(brancos0)
        .fixed(brancos1)
        .fixed(brancos2)
        .fixed(brancos3)
        .read();

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

    return new TempoRelacionamentoBuilderPojo()
        .cadastroSacado(record. get())
        .tipo(record. get())
        .clienteDesde(record. get())
        .tipoCliente(record. get())
        .build();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy