Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* Jackson JSON-processor.
   *
   * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi
   */
  
  package divconq.json3;
  
Interface that defines how Jackson package can interact with efficient pre-serialized or lazily-serialized and reused String representations. Typically implementations store possible serialized version(s) so that serialization of String can be done more efficiently, especially when used multiple times.

Note that "quoted" in methods means quoting of 'special' characters using JSON backlash notation (and not use of actual double quotes).

 
 public interface SerializableString
 {
     /*
      * Returns unquoted String that this object represents (and offers
      * serialized forms for)
      */
     String getValue();
     
     /*
      * Returns length of the (unquoted) String as characters.
      * Functionally equvalent to:
      *<pre>
      *   getValue().length();
      *</pre>
      */
     int charLength();
 
     /*
     /**********************************************************
     /* Accessors for byte sequences
     /**********************************************************
      */
     
     /*
      * 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.
      */
     char[] asQuotedChars();
 
     /*
      * Returns UTF-8 encoded version of unquoted String.
      * Functionally equivalent to (but more efficient than):
      *<pre>
      * getValue().getBytes("UTF-8");
      *</pre>
      */
     byte[] asUnquotedUTF8();
 
     /*
      * Returns UTF-8 encoded version of JSON-quoted String.
      * Functionally equivalent to (but more efficient than):
      *<pre>
      * new String(asQuotedChars()).getBytes("UTF-8");
      *</pre>
      */
     byte[] asQuotedUTF8();
 
     /*
     /**********************************************************
     /* Helper methods for appending byte/char sequences
     /**********************************************************
      */
 
     /*
      * 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:
      *<pre>
      *  byte[] bytes = str.asQuotedUTF8();
      *  System.arraycopy(bytes, 0, buffer, offset, bytes.length);
      *  return bytes.length;
      *</pre>
      * 
      * @return Number of bytes appended, if successful, otherwise -1
      */
     int appendQuotedUTF8(byte[] bufferint offset);
 
     /*
      * Method that will append quoted characters of this String into given
      * buffer. Functionally equivalent to:
      *<pre>
      *  char[] ch = str.asQuotedChars();
      *  System.arraycopy(ch, 0, buffer, offset, ch.length);
      *  return ch.length;
      *</pre>
      * 
      * @return Number of characters appended, if successful, otherwise -1
     */
    int appendQuoted(char[] bufferint offset);
    
    /*
     * Method that will append unquoted ('raw') UTF-8 bytes of this String into given
     * buffer. Functionally equivalent to:
     *<pre>
     *  byte[] bytes = str.asUnquotedUTF8();
     *  System.arraycopy(bytes, 0, buffer, offset, bytes.length);
     *  return bytes.length;
     *</pre>
     * 
     * @return Number of bytes appended, if successful, otherwise -1
     */
    int appendUnquotedUTF8(byte[] bufferint offset);
    
    /*
     * Method that will append unquoted characters of this String into given
     * buffer. Functionally equivalent to:
     *<pre>
     *  char[] ch = str.getValue().toCharArray();
     *  System.arraycopy(bytes, 0, buffer, offset, ch.length);
     *  return ch.length;
     *</pre>
     * 
     * @return Number of characters appended, if successful, otherwise -1
     */
    int appendUnquoted(char[] bufferint offset);
    /*
    /**********************************************************
    /* Helper methods for writing out byte sequences
    /**********************************************************
     */
    /*
     * @return Number of bytes written
     */
    int writeQuotedUTF8(OutputStream outthrows IOException;
    /*
     * @return Number of bytes written
     */
    int writeUnquotedUTF8(OutputStream outthrows IOException;
    /*
     * @return Number of bytes put, if successful, otherwise -1
     */
    int putQuotedUTF8(ByteBuffer bufferthrows IOException;
    /*
     * @return Number of bytes put, if successful, otherwise -1
     */
    int putUnquotedUTF8(ByteBuffer outthrows IOException;
New to GrepCode? Check out our FAQ X