a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The contents of this file are subject to the terms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the Common Development and Distribution License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (the License). You may not use this file except in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * You can obtain a copy of the License at
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * opensso/legal/CDDLv1.0.txt
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * at opensso/legal/CDDLv1.0.txt.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If applicable, add the following below the CDDL Header,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * with the fields enclosed by brackets [] replaced by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * your own identifying information:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: CorrelationHeader.java,v 1.3 2008/06/25 05:47:22 qcheng Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpackage com.sun.identity.liberty.ws.soapbinding;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.text.ParseException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.Date;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.w3c.dom.Document;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.w3c.dom.Element;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.shared.DateUtils;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.shared.xml.XMLUtils;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml.common.SAMLUtils;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The <code>CorrelationHeader</code> class represents <code>Correlation</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * element defined in SOAP binding schema. The <code>messageID</code> is a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * required attribute and will be generated automatically when a constructor
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is called.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @supported.all.api
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic class CorrelationHeader {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String messageID = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String id = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String refToMessageID = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Date timestamp = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Boolean mustUnderstand = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String actor = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Default Construtor
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public CorrelationHeader() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster messageID = SAMLUtils.generateID();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster id = messageID;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster timestamp = new Date();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster actor = SOAPBindingConstants.DEFAULT_SOAP_ACTOR;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster mustUnderstand = Boolean.TRUE;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This constructor takes a <code>org.w3c.dom.Element</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param correlationElement a Correlation element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SOAPBindingException if an error occurs while parsing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the Correlation element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CorrelationHeader(Element correlationElement) throws SOAPBindingException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster messageID = XMLUtils.getNodeAttributeValue(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationElement,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.ATTR_MESSAGE_ID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (messageID == null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String msg = Utils.bundle.getString("missingMessageID");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.error("CorrelationHeader: " + msg);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SOAPBindingException(msg);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster id = XMLUtils.getNodeAttributeValue(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationElement,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.ATTR_id);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster refToMessageID = XMLUtils.getNodeAttributeValue(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationElement,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.ATTR_REF_TO_MESSAGE_ID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String str = XMLUtils.getNodeAttributeValueNS(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationElement,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.NS_SOAP,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.ATTR_MUSTUNDERSTAND);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (str != null && str.length() > 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster mustUnderstand = Utils.StringToBoolean(str);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (Exception pe) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String msg = Utils.bundle.getString("invalidMustUnderstand");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.error("CorrelationHeader: " + msg, pe);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SOAPBindingException(msg);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster str = XMLUtils.getNodeAttributeValue(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationElement,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.ATTR_TIMESTAMP);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (str == null || str.length() == 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String msg = Utils.bundle.getString("missingCorrelationTimestamp");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.error("CorrelationHeader: " + msg);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SOAPBindingException(msg);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster timestamp = DateUtils.stringToDate(str);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (ParseException pe) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String msg = Utils.bundle.getString("invalidTimestamp");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.error("CorrelationHeader: " + msg, pe);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SOAPBindingException(msg);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster actor = XMLUtils.getNodeAttributeValueNS(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationElement,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.NS_SOAP,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.ATTR_ACTOR);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns value of <code>messageID</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return value of <code>messageID</code> attribute
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getMessageID() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return messageID;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns value of <code>refToMessageID</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return value of <code>refToMessageID</code> attribute
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getRefToMessageID() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return refToMessageID;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns value of <code>timestamp</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return value of <code>timestamp</code> attribute
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Date getTimestamp() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return timestamp;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns value of <code>id</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return value of <code>id</code> attribute
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getId() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return messageID;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns value of <code>mustUnderstand</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return value of <code>mustUnderstand</code> attribute
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Boolean getMustUnderstand() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return mustUnderstand;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns value of <code>actor</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return value of <code>actor</code> attribute
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getActor() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return actor;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets value of <code>mustUnderstand</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param mustUnderstand value of <code>mustUnderstand</code> attribute
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setMustUnderstand(Boolean mustUnderstand) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.mustUnderstand = mustUnderstand;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets value of <code>actor</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param actor value of <code>actor</code> attribute
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setActor(String actor) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.actor = actor;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets value of <code>refToMessageID</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param refToMessageID value of <code>refToMessageID</code> attribute
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setRefToMessageID(String refToMessageID) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.refToMessageID = refToMessageID;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Converts this header to <code>org.w3c.dom.Element</code> and add to
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * parent Header Element.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param headerE parent Header Element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void addToParent(Element headerE) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Document doc = headerE.getOwnerDocument();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Element correlationHeaderE = doc.createElementNS(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.NS_SOAP_BINDING,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.PTAG_CORRELATION);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster headerE.appendChild(correlationHeaderE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationHeaderE.setAttributeNS(null,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.ATTR_MESSAGE_ID,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster messageID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (refToMessageID != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationHeaderE.setAttributeNS(null,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.ATTR_REF_TO_MESSAGE_ID,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster refToMessageID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationHeaderE.setAttributeNS(null,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.ATTR_TIMESTAMP,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DateUtils.toUTCDateFormat(timestamp));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationHeaderE.setAttributeNS(null, SOAPBindingConstants.ATTR_id,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster messageID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (mustUnderstand != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationHeaderE.setAttributeNS(SOAPBindingConstants.NS_SOAP,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.PATTR_MUSTUNDERSTAND,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.BooleanToString(mustUnderstand));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (actor != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationHeaderE.setAttributeNS(SOAPBindingConstants.NS_SOAP,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.PATTR_ACTOR,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster actor);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster}