public MessageRequest fromNMS()

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;
    }