
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