package org.mockserver.model; import com.google.common.net.MediaType; import java.nio.charset.Charset; import static org.mockserver.mappers.ContentTypeMapper.DEFAULT_HTTP_CHARACTER_SET; /** * @author jamesdbloom */ public class XmlBody extends Body<String> { public static final MediaType DEFAULT_CONTENT_TYPE = MediaType.create("application", "xml"); private final String xml; private final byte[] rawBinaryData; public XmlBody(String xml) { this(xml, DEFAULT_CONTENT_TYPE); } public XmlBody(String xml, Charset charset) { this(xml, (charset != null ? MediaType.create("application", "xml").withCharset(charset) : null)); } public XmlBody(String xml, MediaType contentType) { super(Type.XML, contentType); this.xml = xml; if (xml != null) { this.rawBinaryData = xml.getBytes(determineCharacterSet(contentType, DEFAULT_HTTP_CHARACTER_SET)); } else { this.rawBinaryData = new byte[0]; } } public static XmlBody xml(String xml) { return new XmlBody(xml); } public static XmlBody xml(String xml, Charset charset) { return new XmlBody(xml, charset); } public static XmlBody xml(String xml, MediaType contentType) { return new XmlBody(xml, contentType); } public String getValue() { return xml; } public byte[] getRawBytes() { return rawBinaryData; } @Override public String toString() { return xml; } }