StUFbg204Util.java

/*
 * Copyright (C) 2017 B3Partners B.V.
 */
package nl.b3p.brmo.stufbg204.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import nl.egem.stuf.stuf0204.FoutBericht;
import nl.egem.stuf.stuf0204.Stuurgegevens;
import nl.egem.stuf.stuf0204.Systeem;

/**
 * Utility methodes voor StUF BG 204.
 *
 * @author mprins
 */
public final class StUFbg204Util {

  public static final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddkkmmssSSS");
  private static JAXBContext jaxbContext;

  private StUFbg204Util() {}

  public static FoutBericht maakFout(String errorcode) {
    return maakFout(errorcode, null);
  }

  public static FoutBericht maakFout(String errorcode, Exception e) {
    final FoutBericht fout = new FoutBericht();
    Stuurgegevens.Fout f = new Stuurgegevens.Fout();
    f.setCrossRefNummer(errorcode);
    Stuurgegevens s = new Stuurgegevens();
    s.setBerichtsoort("Fo01");
    s.setFout(f);

    fout.setStuurgegevens(s);
    FoutBericht.Body b = new FoutBericht.Body();
    b.setCode(errorcode);
    if (e != null) {
      b.setOmschrijving(e.getLocalizedMessage());
    }
    fout.setBody(b);

    return fout;
  }

  public static Stuurgegevens maakStuurgegevens(Stuurgegevens vraagStuurgegevens) {
    final Stuurgegevens sg = vraagStuurgegevens;
    Systeem s = new Systeem();
    s.setApplicatie("BRMO");
    s.setOrganisatie("B3Partners B.V.");
    sg.setZender(s);
    sg.setVersieStUF("0204");
    sg.setTijdstipBericht(sdf.format(new Date()));

    return sg;
  }

  public static JAXBContext getStufJaxbContext() throws JAXBException {
    if (jaxbContext == null) {
      jaxbContext = JAXBContext.newInstance("nl.egem.stuf.sector.bg._0204:nl.egem.stuf.stuf0204");
    }
    return jaxbContext;
  }
}