
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