Module org.hsqldb

Class StringConverter


  • public class StringConverter
    extends java.lang.Object
    Collection of static methods for converting strings between different formats and to and from byte arrays.

    Includes two methods based on Hypersonic code as indicated.

    Since:
    1.7.2
    Author:
    Thomas Mueller (Hypersonic SQL Group), Fred Toussi (fredt@users dot sourceforge.net)
    • Constructor Summary

      Constructors 
      Constructor Description
      StringConverter()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String byteArrayToBitString​(byte[] bytes, int bitCount)
      Converts a byte array into a bit string
      static java.lang.String byteArrayToHexString​(byte[] b)
      Converts a byte array into a hexadecimal string
      static java.lang.String byteArrayToSQLBitString​(byte[] bytes, int bitCount)
      Converts a byte array into an SQL binary string
      static java.lang.String byteArrayToSQLHexString​(byte[] b)
      Converts a byte array into an SQL hexadecimal string
      static java.lang.String byteArrayToString​(byte[] b, java.lang.String charset)  
      static int getUTFSize​(java.lang.String s)  
      static byte[] hexStringToByteArray​(java.lang.String s)
      Converts a hexadecimal string into a byte array
      static java.lang.String inputStreamToString​(java.io.InputStream is, java.lang.String encoding)
      Using an output stream, returns a String from an InputStream.
      static java.lang.String readUTF​(byte[] bytearr, int offset, int length)  
      static java.lang.String readUTF​(byte[] bytearr, int offset, int length, char[] buf)  
      static org.hsqldb.map.BitMap sqlBitStringToBitMap​(java.lang.String s)
      Compacts a bit string into a BitMap
      static void stringToHtmlBytes​(HsqlByteArrayOutputStream b, java.lang.String s)
      Converts the string to an HTML representation in the ASCII character set and appends it to a byte array output stream.
      static void stringToUnicodeBytes​(HsqlByteArrayOutputStream b, java.lang.String s, boolean doubleSingleQuotes)
      Hsqldb specific encoding used only for log files.
      static java.lang.String stringToUnicodeEscaped​(java.lang.String s)  
      static int stringToUTFBytes​(java.lang.String str, HsqlByteArrayOutputStream out)
      Writes a string to the specified DataOutput using UTF-8 encoding in a machine-independent manner.
      static byte[] toBinaryUUID​(java.lang.String s)
      Returns a byte[] representation in UUID form from a UUID string.
      static void toJSONString​(java.lang.String s, java.lang.StringBuilder sb)  
      static java.lang.String toQuotedString​(java.lang.String s, char quoteChar, boolean extraQuote)
      Returns the quoted version of the string using the quotechar argument.
      static java.lang.String toStringUUID​(byte[] b)
      Returns a string representation in UUID form from a binary string.
      static java.lang.String unicodeEscapedToString​(java.lang.String s)  
      static java.lang.String unicodeStringToString​(java.lang.String s)
      Hsqldb specific decoding used only for log files.
      static int writeHexBytes​(byte[] o, int from, byte[] b)
      Converts a byte array into hexadecimal characters which are written as ASCII to the given output stream.
      static int writeUUIDHexBytes​(byte[] o, int from, byte[] b)  
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • StringConverter

        public StringConverter()
    • Method Detail

      • hexStringToByteArray

        public static byte[] hexStringToByteArray​(java.lang.String s)
                                           throws java.io.IOException
        Converts a hexadecimal string into a byte array
        Parameters:
        s - hexadecimal string
        Returns:
        byte array for the hex string
        Throws:
        java.io.IOException - on error
      • sqlBitStringToBitMap

        public static org.hsqldb.map.BitMap sqlBitStringToBitMap​(java.lang.String s)
                                                          throws java.io.IOException
        Compacts a bit string into a BitMap
        Parameters:
        s - bit string
        Returns:
        BitMap for the bit string
        Throws:
        java.io.IOException - on error
      • byteArrayToHexString

        public static java.lang.String byteArrayToHexString​(byte[] b)
        Converts a byte array into a hexadecimal string
        Parameters:
        b - byte array
        Returns:
        hex string
      • byteArrayToSQLHexString

        public static java.lang.String byteArrayToSQLHexString​(byte[] b)
        Converts a byte array into an SQL hexadecimal string
        Parameters:
        b - byte array
        Returns:
        hex string
      • byteArrayToBitString

        public static java.lang.String byteArrayToBitString​(byte[] bytes,
                                                            int bitCount)
        Converts a byte array into a bit string
        Parameters:
        bytes - byte array
        bitCount - number of bits
        Returns:
        hex string
      • byteArrayToSQLBitString

        public static java.lang.String byteArrayToSQLBitString​(byte[] bytes,
                                                               int bitCount)
        Converts a byte array into an SQL binary string
        Parameters:
        bytes - byte array
        bitCount - number of bits
        Returns:
        hex string
      • writeHexBytes

        public static int writeHexBytes​(byte[] o,
                                        int from,
                                        byte[] b)
        Converts a byte array into hexadecimal characters which are written as ASCII to the given output stream.
        Parameters:
        o - output array
        from - offset into output array
        b - input array
        Returns:
        written count
      • byteArrayToString

        public static java.lang.String byteArrayToString​(byte[] b,
                                                         java.lang.String charset)
      • stringToUnicodeBytes

        public static void stringToUnicodeBytes​(HsqlByteArrayOutputStream b,
                                                java.lang.String s,
                                                boolean doubleSingleQuotes)
        Hsqldb specific encoding used only for log files. The SQL statements that need to be written to the log file (input) are Java Unicode strings. input is converted into a 7bit escaped ASCII string (output)with the following transformations. All characters outside the 0x20-7f range are converted to a escape sequence and added to output. If a backslash character is immediately followed by 'u', the backslash character is converted to escape sequence and added to output. All the remaining characters in input are added to output without conversion. The escape sequence is backslash, letter u, xxxx, where xxxx is the hex representation of the character code. (fredt@users)

        Method based on Hypersonic Code

        Parameters:
        b - output stream to wite to
        s - Java string
        doubleSingleQuotes - boolean
      • unicodeStringToString

        public static java.lang.String unicodeStringToString​(java.lang.String s)
        Hsqldb specific decoding used only for log files. This method converts the 7 bit escaped ASCII strings in a log file back into Java Unicode strings. See stringToUnicodeBytes() above.

        Method based on Hypersonic Code

        Parameters:
        s - encoded ASCII string in byte array
        Returns:
        Java string
      • readUTF

        public static java.lang.String readUTF​(byte[] bytearr,
                                               int offset,
                                               int length)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • readUTF

        public static java.lang.String readUTF​(byte[] bytearr,
                                               int offset,
                                               int length,
                                               char[] buf)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • stringToUTFBytes

        public static int stringToUTFBytes​(java.lang.String str,
                                           HsqlByteArrayOutputStream out)
        Writes a string to the specified DataOutput using UTF-8 encoding in a machine-independent manner.

        Parameters:
        str - a string to be written.
        out - destination to write to
        Returns:
        The number of bytes written out.
      • getUTFSize

        public static int getUTFSize​(java.lang.String s)
      • inputStreamToString

        public static java.lang.String inputStreamToString​(java.io.InputStream is,
                                                           java.lang.String encoding)
                                                    throws java.io.IOException
        Using an output stream, returns a String from an InputStream.
        Parameters:
        is - InputStream to read from
        encoding - character encoding of the string
        Returns:
        a Java string
        Throws:
        java.io.IOException - on error
      • toQuotedString

        public static java.lang.String toQuotedString​(java.lang.String s,
                                                      char quoteChar,
                                                      boolean extraQuote)
        Returns the quoted version of the string using the quotechar argument. doublequote argument indicates whether each instance of quotechar inside the string is doubled.

        null string argument returns null. If the caller needs the literal "NULL" it should created it itself

        Parameters:
        s - Java string
        quoteChar - character used for quoting
        extraQuote - true if quoteChar itself should be repeated
        Returns:
        String
      • stringToHtmlBytes

        public static void stringToHtmlBytes​(HsqlByteArrayOutputStream b,
                                             java.lang.String s)
        Converts the string to an HTML representation in the ASCII character set and appends it to a byte array output stream.
        Parameters:
        b - the output byte array output stream
        s - the input string
      • toStringUUID

        public static java.lang.String toStringUUID​(byte[] b)
        Returns a string representation in UUID form from a binary string. UUID string is composed of 8-4-4-4-12 hexadecimal characters.
        Parameters:
        b - the byte array
        Returns:
        UUID string form
      • writeUUIDHexBytes

        public static int writeUUIDHexBytes​(byte[] o,
                                            int from,
                                            byte[] b)
      • toBinaryUUID

        public static byte[] toBinaryUUID​(java.lang.String s)
        Returns a byte[] representation in UUID form from a UUID string.
        Parameters:
        s - the UUID string
        Returns:
        byte array
      • stringToUnicodeEscaped

        public static java.lang.String stringToUnicodeEscaped​(java.lang.String s)
      • unicodeEscapedToString

        public static java.lang.String unicodeEscapedToString​(java.lang.String s)
                                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • toJSONString

        public static void toJSONString​(java.lang.String s,
                                        java.lang.StringBuilder sb)