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

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

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

import br.com.objectos.way.io.flat.FlatFileParser;
import br.com.objectos.way.io.flat.FlatFileReader;
import br.com.objectos.way.io.flat.Result;
import java.io.LineNumberReader;
import java.io.Reader;
import java.io.StringReader;
import java.util.List;
import java.util.Optional;
import javax.annotation.Generated;

@Generated("br.com.objectos.way.io.flat.FlatFileParserArtifactAction")
final class RemessaConciliacaoParser implements FlatFileParser {
  private static final RemessaConciliacaoParser INSTANCE = new RemessaConciliacaoParser();

  private RemessaConciliacaoParser() {
  }

  public static FlatFileParser get() {
    return INSTANCE;
  }

  @Override
  public RemessaConciliacao parse(Reader reader) throws RemessaConciliacaoParseException {
    return ___parse___(new LineNumberReader(reader));
  }

  @Override
  public RemessaConciliacao parse(String input) throws RemessaConciliacaoParseException {
    StringReader reader = new StringReader(input);
    return parse(reader);
  }

  private RemessaConciliacao ___parse___(LineNumberReader reader) throws RemessaConciliacaoParseException {
    FlatFileReader file = FlatFileReader.get(reader);

    Result header = file.parseOne(HeaderConciliacaoParser.get());
    Result> tituloList = file.parseList(TituloConciliacaoParser.getMatcher(), TituloConciliacaoParser.get());
    Result trailer = file.parseOne(TrailerConciliacaoParser.get());

    Optional maybeParseException = RemessaConciliacaoParseException.of(header, tituloList, trailer);
    if (maybeParseException.isPresent()) {
      throw maybeParseException.get();
    }

    return new RemessaConciliacaoBuilderPojo()
        .header(header.get())
        .tituloList(tituloList.get())
        .trailer(trailer.get())
        .build();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy