com.amazon.redshift.core

## Class Utils

- java.lang.Object
- - com.amazon.redshift.core.Utils

    public class Utils
    extends Object

Collection of utilities used by the protocol-level code.

### Constructor Summary

Constructors
Constructor and Description
`Utils()`

### Method Summary

Methods
`static byte[]` `encodeUTF8(String str)` Encode a string as UTF-8.
`static StringBuilder` `escapeIdentifier(StringBuilder sbuf, String value)` Escape the given identifier `value` and append it to the string builder `sbuf`.
`static StringBuilder` `escapeLiteral(StringBuilder sbuf, String value, boolean standardConformingStrings)`
`static StringBuilder` `escapeLiteral(StringBuilder sbuf, String value, boolean standardConformingStrings, boolean onlyQuotes)` Escape the given literal `value` and append it to the string builder `sbuf`.
`static int` `parseServerVersionStr(String serverVersion)` Deprecated. use specific `Version` instance
`static String` `toHexString(byte[] data)` Turn a bytearray into a printable form, representing each byte in hex.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Utils

    public Utils()

### Method Detail

#### toHexString

    public static String toHexString(byte[] data)

Turn a bytearray into a printable form, representing each byte in hex.

Parameters:
  `data` - the bytearray to stringize
Returns:
  a hex-encoded printable representation of `data`

#### encodeUTF8

    public static byte[] encodeUTF8(String str)

Encode a string as UTF-8.

Parameters:
  `str` - the string to encode
Returns:
  the UTF-8 representation of `str`

#### escapeLiteral

    public static StringBuilder escapeLiteral(StringBuilder sbuf,
                              String value,
                              boolean standardConformingStrings,
                              boolean onlyQuotes)
                                       throws SQLException

Escape the given literal `value` and append it to the string builder `sbuf`. If `sbuf` is `null`, a new StringBuilder will be returned. The argument `standardConformingStrings` defines whether the backend expects standard-conforming string literals or allows backslash escape sequences.

Parameters:
  `sbuf` - the string builder to append to; or `null`
  `value` - the string value
  `standardConformingStrings` - if standard conforming strings should be used
  `onlyQuotes` - only escape quote and not the backslash for database name
Returns:
  the sbuf argument; or a new string builder for sbuf == null
Throws:
  `SQLException` - if the string contains a `\0` character

#### escapeLiteral

    public static StringBuilder escapeLiteral(StringBuilder sbuf,
                              String value,
                              boolean standardConformingStrings)
                                       throws SQLException

Throws:
  `SQLException`

#### escapeIdentifier

    public static StringBuilder escapeIdentifier(StringBuilder sbuf,
                                 String value)
                                          throws SQLException

Escape the given identifier `value` and append it to the string builder `sbuf`. If `sbuf` is `null`, a new StringBuilder will be returned. This method is different from appendEscapedLiteral in that it includes the quoting required for the identifier while `escapeLiteral(StringBuilder, String, boolean)` does not.

Parameters:
  `sbuf` - the string builder to append to; or `null`
  `value` - the string value
Returns:
  the sbuf argument; or a new string builder for sbuf == null
Throws:
  `SQLException` - if the string contains a `\0` character

#### parseServerVersionStr

    @Deprecated
    public static int parseServerVersionStr(String serverVersion)
                                     throws NumberFormatException

Deprecated. use specific `Version` instance

Attempt to parse the server version string into an XXYYZZ form version number.

Returns 0 if the version could not be parsed.

Returns minor version 0 if the minor version could not be determined, e.g. devel or beta releases.

If a single major part like 90400 is passed, it's assumed to be a pre-parsed version and returned verbatim. (Anything equal to or greater than 10000 is presumed to be this form).

The yy or zz version parts may be larger than 99. A NumberFormatException is thrown if a version part is out of range.

Parameters:
  `serverVersion` - server vertion in a XXYYZZ form
Returns:
  server version in number form
Throws:
  `NumberFormatException`