com.fasterxml.jackson.core.io

Class 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 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()
      • charLength

        public final int charLength()
        Returns length of the String as characters
        Specified by:
        charLength in interface SerializableString
      • asQuotedChars

        public final char[] asQuotedChars()
        Description copied from interface: SerializableString
        Returns JSON quoted form of the String, as character array. Result can be embedded as-is in textual JSON as property name or JSON String.
        Specified by:
        asQuotedChars in interface SerializableString
      • asUnquotedUTF8

        public final byte[] asUnquotedUTF8()
        Accessor for accessing value that has been quoted using JSON quoting rules, and encoded using UTF-8 encoding.
        Specified by:
        asUnquotedUTF8 in interface SerializableString
      • asQuotedUTF8

        public final byte[] asQuotedUTF8()
        Accessor for accessing value as is (without JSON quoting) encoded using UTF-8 encoding.
        Specified by:
        asQuotedUTF8 in interface SerializableString
      • 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 interface SerializableString
        Returns:
        Number of bytes appended, if successful, otherwise -1
      • 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 interface SerializableString
        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 interface SerializableString
        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 interface SerializableString
        Returns:
        Number of characters appended, if successful, otherwise -1
      • hashCode

        public final int hashCode()
        Overrides:
        hashCode in class Object

Copyright © 2008–2017 FasterXML. All rights reserved.