blob: a7e7e858fb8ec2448d1080e1f8c59da058b7a727 [file] [log] [blame]
package com.fasterxml.jackson.core.util;
import java.io.IOException;
/**
* Container object used to contain optional information on content
* being parsed, passed to {@link com.fasterxml.jackson.core.JsonParseException} in case of
* exception being thrown; this may be useful for caller to display
* information on failure.
*
* @since 2.8
*/
public class RequestPayload
implements java.io.Serializable // just in case, even though likely included as transient
{
private static final long serialVersionUID = 1L;
// request payload as byte[]
protected byte[] _payloadAsBytes;
// request payload as String
protected CharSequence _payloadAsText;
// Charset if the request payload is set in bytes
protected String _charset;
public RequestPayload(byte[] bytes, String charset) {
if (bytes == null) {
throw new IllegalArgumentException();
}
_payloadAsBytes = bytes;
_charset = (charset == null || charset.isEmpty()) ? "UTF-8" : charset;
}
public RequestPayload(CharSequence str) {
if (str == null) {
throw new IllegalArgumentException();
}
_payloadAsText = str;
}
/**
* Returns the raw request payload object i.e, either byte[] or String
*
* @return Object which is a raw request payload i.e, either byte[] or
* String
*/
public Object getRawPayload() {
if (_payloadAsBytes != null) {
return _payloadAsBytes;
}
return _payloadAsText;
}
@Override
public String toString() {
if (_payloadAsBytes != null) {
try {
return new String(_payloadAsBytes, _charset);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return _payloadAsText.toString();
}
}