in bindings/servicemix-smpp/src/main/java/org/apache/servicemix/smpp/marshaler/DefaultSmppMarshaler.java [125:203]
public MessageRequest fromNMS(MessageExchange exchange, NormalizedMessage message) throws TransformerException {
SubmitSm sm = new SubmitSm();
String ton = null;
String npi = null;
try {
Document document = transformer.toDOMDocument(message);
document.getDocumentElement().normalize();
NodeList node = null;
if ((node = getNotEmptyNodeListOrNull(document, TAG_SOURCE)) != null) {
sm.setSourceAddr(getFirstNodeValue(node));
logger.debug("{}: {}", TAG_SOURCE, sm.getSourceAddr());
}
if ((node = getNotEmptyNodeListOrNull(document, TAG_DESTINATION)) != null) {
sm.setDestAddress(getFirstNodeValue(node));
logger.debug("{}: {}", TAG_DESTINATION, sm.getDestAddress());
}
if ((node = getNotEmptyNodeListOrNull(document, TAG_TEXT)) != null) {
sm.setShortMessage(getFirstNodeValue(node).getBytes());
logger.debug("{}: {}", TAG_TEXT, new String(sm.getShortMessage()));
}
if ((node = getNotEmptyNodeListOrNull(document, TAG_TON)) != null) {
ton = getFirstNodeValue(node);
sm.setDestAddrTon(TypeOfNumber.valueOf(ton).value());
sm.setSourceAddrTon(TypeOfNumber.valueOf(ton).value());
logger.debug("{}: {}", TAG_TON, ton);
}
if ((node = getNotEmptyNodeListOrNull(document, TAG_NPI)) != null) {
npi = getFirstNodeValue(node);
sm.setDestAddrNpi(NumberingPlanIndicator.valueOf(npi).value());
sm.setSourceAddrNpi(NumberingPlanIndicator.valueOf(npi).value());
logger.debug("{}: {}", TAG_NPI, npi);
}
if ((node = getNotEmptyNodeListOrNull(document, TAG_REGISTERED_DELIVERY)) != null) {
String registeredDelivery = getFirstNodeValue(node);
sm.setRegisteredDelivery(SMSCDeliveryReceipt.valueOf(registeredDelivery).value());
logger.debug("{}: {}", TAG_REGISTERED_DELIVERY, registeredDelivery);
} else {
sm.setRegisteredDelivery(SMSCDeliveryReceipt.DEFAULT.value());
logger.debug("{}: DEFAULT", TAG_REGISTERED_DELIVERY);
}
if ((node = getNotEmptyNodeListOrNull(document, TAG_SCHEDULE_DELIVERY_TIME)) != null) {
sm.setScheduleDeliveryTime(getFirstNodeValue(node));
logger.debug("{}: {}", TAG_SCHEDULE_DELIVERY_TIME, sm.getScheduleDeliveryTime());
}
if ((node = getNotEmptyNodeListOrNull(document, TAG_VALIDITY_PERIOD)) != null) {
sm.setValidityPeriod(getFirstNodeValue(node));
logger.debug("{}: {}", TAG_VALIDITY_PERIOD, sm.getValidityPeriod());
}
} catch (Exception exception) {
throw new TransformerException(exception);
}
if (sm.getSourceAddr() == null) {
throw new TransformerException("Invalid message content. Missing tag: " + TAG_SOURCE);
}
if (sm.getDestAddress() == null) {
throw new TransformerException("Invalid message content. Missing tag: " + TAG_DESTINATION);
}
if (ton == null) {
throw new TransformerException("Invalid message content. Missing tag: " + TAG_TON);
}
if (npi == null) {
throw new TransformerException("Invalid message content. Missing tag: " + TAG_NPI);
}
applyOptionalParametersToRequest(sm, message);
return sm;
}