private void encode()

in rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java [219:345]


    private void encode(SoapMessage message,
                        AddressingProperties maps) {
        if (maps != null) {
            cacheExchange(message, maps);
            LOG.log(Level.FINE, "Outbound WS-Addressing headers");
            try {
                List<Header> header = message.getHeaders();
                discardMAPs(header, maps);

                JAXBContext jaxbContext =
                    org.apache.cxf.ws.addressing.VersionTransformer.getExposedJAXBContext(
                                                     maps.getNamespaceURI());
                QName duplicate = maps.getDuplicate();
                encodeAsExposed(maps,
                                message,
                                maps.getAction(),
                                Names.WSA_ACTION_QNAME,
                                AttributedURIType.class,
                                jaxbContext);
                if (Names.WSA_ACTION_QNAME.equals(duplicate)) {
                    encodeAsExposed(maps,
                                    message,
                                    maps.getAction(),
                                    Names.WSA_ACTION_QNAME,
                                    AttributedURIType.class,
                                    jaxbContext);
                }
                encodeAsExposed(maps,
                                message,
                                maps.getMessageID(),
                                Names.WSA_MESSAGEID_QNAME,
                                AttributedURIType.class,
                                jaxbContext);
                if (Names.WSA_MESSAGEID_QNAME.equals(duplicate)) {
                    encodeAsExposed(maps,
                                    message,
                                    maps.getMessageID(),
                                    Names.WSA_MESSAGEID_QNAME,
                                    AttributedURIType.class,
                                    jaxbContext);
                }
                encodeAsExposed(maps,
                                message,
                                maps.getTo(),
                                Names.WSA_TO_QNAME,
                                AttributedURIType.class,
                                jaxbContext);
                if (Names.WSA_TO_QNAME.equals(duplicate)) {
                    encodeAsExposed(maps,
                                    message,
                                    maps.getTo(),
                                    Names.WSA_TO_QNAME,
                                    AttributedURIType.class,
                                    jaxbContext);
                }
                if (needsReplyTo(maps, message)) {
                    encodeAsExposed(maps,
                            message,
                            maps.getReplyTo(),
                            Names.WSA_REPLYTO_QNAME,
                            EndpointReferenceType.class,
                            jaxbContext);
                    if (Names.WSA_REPLYTO_QNAME.equals(duplicate)) {
                        encodeAsExposed(maps,
                                        message,
                                        maps.getReplyTo(),
                                        Names.WSA_REPLYTO_QNAME,
                                        EndpointReferenceType.class,
                                        jaxbContext);
                    }
                }

                encodeAsExposed(maps,
                                message,
                                maps.getRelatesTo(),
                                Names.WSA_RELATESTO_QNAME,
                                RelatesToType.class,
                                jaxbContext);
                if (Names.WSA_RELATESTO_QNAME.equals(duplicate)) {
                    encodeAsExposed(maps,
                                    message,
                                    maps.getRelatesTo(),
                                    Names.WSA_RELATESTO_QNAME,
                                    RelatesToType.class,
                                    jaxbContext);
                }
                encodeAsExposed(maps,
                                message,
                                maps.getFrom(),
                                Names.WSA_FROM_QNAME,
                                EndpointReferenceType.class,
                                jaxbContext);
                if (Names.WSA_FROM_QNAME.equals(duplicate)) {
                    encodeAsExposed(maps,
                                    message,
                                    maps.getFrom(),
                                    Names.WSA_FROM_QNAME,
                                    EndpointReferenceType.class,
                                    jaxbContext);
                }
                if (needsFaultTo(maps)) {
                    encodeAsExposed(maps,
                                    message,
                                    maps.getFaultTo(),
                                    Names.WSA_FAULTTO_QNAME,
                                    EndpointReferenceType.class,
                                    jaxbContext);
                    if (Names.WSA_FAULTTO_QNAME.equals(duplicate)) {
                        encodeAsExposed(maps,
                                        message,
                                        maps.getFaultTo(),
                                        Names.WSA_FAULTTO_QNAME,
                                        EndpointReferenceType.class,
                                        jaxbContext);
                    }
                }
                encodeReferenceParameters(maps, message, jaxbContext);

                maps.setDuplicate(null);

                propogateAction(maps.getAction(), message);
                applyMAPValidation(message);
            } catch (JAXBException je) {
                LOG.log(Level.WARNING, "SOAP_HEADER_ENCODE_FAILURE_MSG", je);
            }
        }
    }