blob: 5780d861261e033c04f6ec4a0dff792b596b8f8c [file] [log] [blame]
package org.codehaus.jackson;
/**
* Enumeration that defines legal encodings that can be used
* for JSON content, based on list of allowed encodings from
* <a href="http://www.ietf.org/rfc/rfc4627.txt">JSON specification</a>.
*<p>
* Note: if application want to explicitly disregard Encoding
* limitations (to read in JSON encoded using an encoding not
* listed as allowed), they can use {@link java.io.Reader} /
* {@link java.io.Writer} instances as input
*/
public enum JsonEncoding {
UTF8("UTF-8", false), // N/A for big-endian, really
UTF16_BE("UTF-16BE", true),
UTF16_LE("UTF-16LE", false),
UTF32_BE("UTF-32BE", true),
UTF32_LE("UTF-32LE", false)
;
protected final String _javaName;
protected final boolean _bigEndian;
JsonEncoding(String javaName, boolean bigEndian)
{
_javaName = javaName;
_bigEndian = bigEndian;
}
/**
* Method for accessing encoding name that JDK will support.
*
* @return Matching encoding name that JDK will support.
*/
public String getJavaName() { return _javaName; }
/**
* Whether encoding is big-endian (if encoding supports such
* notion). If no such distinction is made (as is the case for
* {@link #UTF8}), return value is undefined.
*
* @return True for big-endian encodings; false for little-endian
* (or if not applicable)
*/
public boolean isBigEndian() { return _bigEndian; }
}