Package com.fasterxml.jackson.core.io
Class SerializedString
- java.lang.Object
-
- com.fasterxml.jackson.core.io.SerializedString
-
- All Implemented Interfaces:
SerializableString
,Serializable
public class SerializedString extends Object implements SerializableString, Serializable
String token that can lazily serialize String contained and then reuse that serialization later on. This is similar to JDBC prepared statements, for example, in that instances should only be created when they are used more than use; prime candidates are various serializers.Class is final for performance reasons and since this is not designed to be extensible or customizable (customizations would occur in calling code)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected String
_jdkSerializeValue
Ugly hack, to work through the requirement that _value is indeed final, and that JDK serialization won't call ctor(s).protected char[]
_quotedChars
protected byte[]
_quotedUTF8Ref
protected byte[]
_unquotedUTF8Ref
protected String
_value
-
Constructor Summary
Constructors Constructor Description SerializedString(String v)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
appendQuoted(char[] buffer, int offset)
Method that will append quoted characters of this String into given buffer.int
appendQuotedUTF8(byte[] buffer, int offset)
Method that will append quoted UTF-8 bytes of this String into given buffer, if there is enough room; if not, returns -1.int
appendUnquoted(char[] buffer, int offset)
Method that will append unquoted characters of this String into given buffer.int
appendUnquotedUTF8(byte[] buffer, int offset)
Method that will append unquoted ('raw') UTF-8 bytes of this String into given buffer.char[]
asQuotedChars()
Accessor for accessing value that has been quoted (escaped) using JSON quoting rules (using backslash-prefixed codes) into a char array.byte[]
asQuotedUTF8()
Accessor for accessing value that has been quoted (escaped) using JSON quoting rules (using backslash-prefixed codes), and encoded using UTF-8 encoding into a byte array.byte[]
asUnquotedUTF8()
Accessor for accessing value as is (without JSON quoting (ecaping)) encoded as UTF-8 byte array.int
charLength()
Returns length of the String as charactersboolean
equals(Object o)
String
getValue()
Returns unquoted String that this object represents (and offers serialized forms for)int
hashCode()
int
putQuotedUTF8(ByteBuffer buffer)
int
putUnquotedUTF8(ByteBuffer buffer)
protected Object
readResolve()
String
toString()
int
writeQuotedUTF8(OutputStream out)
int
writeUnquotedUTF8(OutputStream out)
-
-
-
Field Detail
-
_value
protected final String _value
-
_quotedUTF8Ref
protected byte[] _quotedUTF8Ref
-
_unquotedUTF8Ref
protected byte[] _unquotedUTF8Ref
-
_quotedChars
protected char[] _quotedChars
-
_jdkSerializeValue
protected transient String _jdkSerializeValue
Ugly hack, to work through the requirement that _value is indeed final, and that JDK serialization won't call ctor(s).- Since:
- 2.1
-
-
Constructor Detail
-
SerializedString
public SerializedString(String v)
-
-
Method Detail
-
readResolve
protected Object readResolve()
-
getValue
public final String getValue()
Description copied from interface:SerializableString
Returns unquoted String that this object represents (and offers serialized forms for)- Specified by:
getValue
in interfaceSerializableString
-
charLength
public final int charLength()
Returns length of the String as characters- Specified by:
charLength
in interfaceSerializableString
-
asQuotedChars
public final char[] asQuotedChars()
Accessor for accessing value that has been quoted (escaped) using JSON quoting rules (using backslash-prefixed codes) into a char array.- Specified by:
asQuotedChars
in interfaceSerializableString
-
asQuotedUTF8
public final byte[] asQuotedUTF8()
Accessor for accessing value that has been quoted (escaped) using JSON quoting rules (using backslash-prefixed codes), and encoded using UTF-8 encoding into a byte array.- Specified by:
asQuotedUTF8
in interfaceSerializableString
-
asUnquotedUTF8
public final byte[] asUnquotedUTF8()
Accessor for accessing value as is (without JSON quoting (ecaping)) encoded as UTF-8 byte array.- Specified by:
asUnquotedUTF8
in interfaceSerializableString
-
appendQuoted
public int appendQuoted(char[] buffer, int offset)
Description copied from interface:SerializableString
Method that will append quoted characters of this String into given buffer. Functionally equivalent to:char[] ch = str.asQuotedChars(); System.arraycopy(ch, 0, buffer, offset, ch.length); return ch.length;
- Specified by:
appendQuoted
in interfaceSerializableString
- Returns:
- Number of characters appended, if successful, otherwise -1
-
appendQuotedUTF8
public int appendQuotedUTF8(byte[] buffer, int offset)
Description copied from interface:SerializableString
Method that will append quoted UTF-8 bytes of this String into given buffer, if there is enough room; if not, returns -1. Functionally equivalent to:byte[] bytes = str.asQuotedUTF8(); System.arraycopy(bytes, 0, buffer, offset, bytes.length); return bytes.length;
- Specified by:
appendQuotedUTF8
in interfaceSerializableString
- Returns:
- Number of bytes appended, if successful, otherwise -1
-
appendUnquoted
public int appendUnquoted(char[] buffer, int offset)
Description copied from interface:SerializableString
Method that will append unquoted characters of this String into given buffer. Functionally equivalent to:char[] ch = str.getValue().toCharArray(); System.arraycopy(bytes, 0, buffer, offset, ch.length); return ch.length;
- Specified by:
appendUnquoted
in interfaceSerializableString
- Returns:
- Number of characters appended, if successful, otherwise -1
-
appendUnquotedUTF8
public int appendUnquotedUTF8(byte[] buffer, int offset)
Description copied from interface:SerializableString
Method that will append unquoted ('raw') UTF-8 bytes of this String into given buffer. Functionally equivalent to:byte[] bytes = str.asUnquotedUTF8(); System.arraycopy(bytes, 0, buffer, offset, bytes.length); return bytes.length;
- Specified by:
appendUnquotedUTF8
in interfaceSerializableString
- Returns:
- Number of bytes appended, if successful, otherwise -1
-
writeQuotedUTF8
public int writeQuotedUTF8(OutputStream out) throws IOException
- Specified by:
writeQuotedUTF8
in interfaceSerializableString
- Returns:
- Number of bytes written
- Throws:
IOException
-
writeUnquotedUTF8
public int writeUnquotedUTF8(OutputStream out) throws IOException
- Specified by:
writeUnquotedUTF8
in interfaceSerializableString
- Returns:
- Number of bytes written
- Throws:
IOException
-
putQuotedUTF8
public int putQuotedUTF8(ByteBuffer buffer)
- Specified by:
putQuotedUTF8
in interfaceSerializableString
- Returns:
- Number of bytes put, if successful, otherwise -1
-
putUnquotedUTF8
public int putUnquotedUTF8(ByteBuffer buffer)
- Specified by:
putUnquotedUTF8
in interfaceSerializableString
- Returns:
- Number of bytes put, if successful, otherwise -1
-
-