package hudson.plugins.ec2.win.winrm.soap; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.Namespace; import org.dom4j.QName; public class MessageBuilder { private final Document doc = DocumentHelper.createDocument(); private final Element envelope = doc.addElement(QName.get("Envelope", Namespaces.NS_SOAP_ENV)); public MessageBuilder() { for (Namespace ns : Namespaces.mostUsed()) { envelope.add(ns); } } public HeaderBuilder newHeader() { return new HeaderBuilder(); } public void addHeader(Header header) { Element elem = envelope.addElement(QName.get("Header", Namespaces.NS_SOAP_ENV)); header.toElement(elem); } public void addBody(Element body) { Element elem = envelope.addElement(QName.get("Body", Namespaces.NS_SOAP_ENV)); if (body != null) elem.add(body); } public Document build() { return doc; } }