Class SerializedString

  • All Implemented Interfaces:
    SerializableString, java.io.Serializable

    public class SerializedString
    extends java.lang.Object
    implements SerializableString, java.io.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
    • Constructor Summary

      Constructors 
      Constructor Description
      SerializedString​(java.lang.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 characters
      boolean equals​(java.lang.Object o)  
      java.lang.String getValue()
      Returns unquoted String that this object represents (and offers serialized forms for)
      int hashCode()  
      int putQuotedUTF8​(java.nio.ByteBuffer buffer)
      Method for appending JSON-escaped UTF-8 encoded String value into given ByteBuffer, if it fits.
      int putUnquotedUTF8​(java.nio.ByteBuffer buffer)
      Method for appending unquoted ('raw') UTF-8 encoded String value into given ByteBuffer, if it fits.
      java.lang.String toString()  
      int writeQuotedUTF8​(java.io.OutputStream out)
      Method for writing JSON-escaped UTF-8 encoded String value using given OutputStream.
      int writeUnquotedUTF8​(java.io.OutputStream out)
      Method for writing unescaped UTF-8 encoded String value using given OutputStream.
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • SerializedString

        public SerializedString​(java.lang.String v)
    • Method Detail

      • getValue

        public final java.lang.String getValue()
        Description copied from interface: SerializableString
        Returns unquoted String that this object represents (and offers serialized forms for)
        Specified by:
        getValue in interface SerializableString
        Returns:
        Unquoted String
      • charLength

        public final int charLength()
        Returns length of the String as characters
        Specified by:
        charLength in interface SerializableString
        Returns:
        Length of the String in characters
      • 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 interface SerializableString
        Returns:
        JSON quoted form of the String as char[]
      • 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 interface SerializableString
        Returns:
        UTF-8 encoded version of JSON-escaped String
      • 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 interface SerializableString
        Returns:
        UTF-8 encoded version of String, without any escaping
      • 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
        Parameters:
        buffer - Buffer to append JSON-escaped String into
        offset - Offset in buffer to append String at
        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 interface SerializableString
        Parameters:
        buffer - Buffer to append JSON-escaped String into
        offset - Offset in buffer to append String at
        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
        Parameters:
        buffer - Buffer to append literal (unescaped) String into
        offset - Offset in buffer to append String at
        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
        Parameters:
        buffer - Buffer to append literal (unescaped) String into
        offset - Offset in buffer to append String at
        Returns:
        Number of bytes appended, if successful, otherwise -1
      • writeQuotedUTF8

        public int writeQuotedUTF8​(java.io.OutputStream out)
                            throws java.io.IOException
        Description copied from interface: SerializableString
        Method for writing JSON-escaped UTF-8 encoded String value using given OutputStream.
        Specified by:
        writeQuotedUTF8 in interface SerializableString
        Parameters:
        out - OutputStream to write String into
        Returns:
        Number of bytes written
        Throws:
        java.io.IOException - if underlying stream write fails
      • writeUnquotedUTF8

        public int writeUnquotedUTF8​(java.io.OutputStream out)
                              throws java.io.IOException
        Description copied from interface: SerializableString
        Method for writing unescaped UTF-8 encoded String value using given OutputStream.
        Specified by:
        writeUnquotedUTF8 in interface SerializableString
        Parameters:
        out - OutputStream to write String into
        Returns:
        Number of bytes written
        Throws:
        java.io.IOException - if underlying stream write fails
      • putQuotedUTF8

        public int putQuotedUTF8​(java.nio.ByteBuffer buffer)
        Description copied from interface: SerializableString
        Method for appending JSON-escaped UTF-8 encoded String value into given ByteBuffer, if it fits.
        Specified by:
        putQuotedUTF8 in interface SerializableString
        Parameters:
        buffer - ByteBuffer to append String into
        Returns:
        Number of bytes put, if contents fit, otherwise -1
      • putUnquotedUTF8

        public int putUnquotedUTF8​(java.nio.ByteBuffer buffer)
        Description copied from interface: SerializableString
        Method for appending unquoted ('raw') UTF-8 encoded String value into given ByteBuffer, if it fits.
        Specified by:
        putUnquotedUTF8 in interface SerializableString
        Parameters:
        buffer - ByteBuffer to append String into
        Returns:
        Number of bytes put, if contents fit, otherwise -1
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • hashCode

        public final int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public final boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object