@Override
public Object transform(MuleMessage message, String outputEncoding) throws TransformerException
{
try
{
EbMSMessageContent content = (EbMSMessageContent)message.getPayload();
AanleverBericht aanleverBericht = XMLMessageBuilder.getInstance(AanleverBericht.class).handle(new String(content.getAttachments().iterator().next().getContent()));
BevestigAanleverBericht aanleverBevestiging = new BevestigAanleverBericht();
aanleverBevestiging.setKenmerk(StringUtils.isAlpha(aanleverBericht.getKenmerk()) ? aanleverBericht.getKenmerk() : "kenmerk");
aanleverBevestiging.setBerichtsoort(aanleverBericht.getBerichtsoort());
aanleverBevestiging.setAanleverkenmerk(aanleverBericht.getAanleverkenmerk());
aanleverBevestiging.setEerderAanleverkenmerk(aanleverBericht.getEerderAanleverkenmerk());
aanleverBevestiging.setIdentiteitBelanghebbende(new IdentiteitType());
aanleverBevestiging.getIdentiteitBelanghebbende().setNummer(aanleverBericht.getIdentiteitBelanghebbende().getNummer());
aanleverBevestiging.getIdentiteitBelanghebbende().setType(aanleverBericht.getIdentiteitBelanghebbende().getType());
aanleverBevestiging.setRolBelanghebbende(aanleverBericht.getRolBelanghebbende());
if (aanleverBericht.getIdentiteitOntvanger() != null)
{
aanleverBevestiging.setIdentiteitOntvanger(new IdentiteitType());
aanleverBevestiging.getIdentiteitOntvanger().setNummer(aanleverBericht.getIdentiteitOntvanger().getNummer());
aanleverBevestiging.getIdentiteitOntvanger().setType(aanleverBericht.getIdentiteitOntvanger().getType());
}
else
{
aanleverBevestiging.setIdentiteitOntvanger(new IdentiteitType());
aanleverBevestiging.getIdentiteitOntvanger().setNummer("nummer");
}
aanleverBevestiging.setRolOntvanger(aanleverBericht.getRolOntvanger());
aanleverBevestiging.setAutorisatieAdres(aanleverBericht.getAutorisatieAdres());
aanleverBevestiging.setStatuscode("0");
aanleverBevestiging.setTijdstempelStatus(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));
FoutType error = (FoutType)message.getProperty("AANLEVERBERICHT_ERROR");
if (error == null)
aanleverBevestiging.setTijdstempelAangeleverd(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));
else
aanleverBevestiging.setFout(error);
List<EbMSAttachment> attachments = new ArrayList<EbMSAttachment>();
attachments.add(new EbMSAttachment(name,"application/xml",XMLMessageBuilder.getInstance(BevestigAanleverBericht.class).handle(aanleverBevestiging).getBytes()));
return new EbMSMessageContent(new EbMSMessageContext(cpaId,service,action,content.getContext().getConversationId()),attachments);
}
catch (Exception e)
{
throw new TransformerException(this,e);
}