Package: org.codehaus.groovy.runtime

## [Java] Class EncodingGroovyMethods

- org.codehaus.groovy.runtime.EncodingGroovyMethods

- This class defines all the encoding/decoding groovy methods which enhance the normal JDK classes when inside the Groovy environment. Static methods are used with the first parameter the destination class.

- - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `static byte[]` | `decodeBase64(String value)` Decode the String from Base64 into a byte array.
    `` | `static byte[]` | `decodeBase64Url(String value)` Decodes a Base64 URL and Filename Safe encoded String into a byte array.
    `` | `static byte[]` | `decodeHex(String value)` Decodes a hex string to a byte array.
    `` | `static String` | `digest(CharSequence self, String algorithm)` digest the CharSequence instance
    `` | `static String` | `digest(byte[] self, String algorithm)` digest the byte array
    `` | `static Writable` | `encodeBase64(Byte[] data, boolean chunked)` Produce a Writable object which writes the Base64 encoding of the byte array.
    `` | `static Writable` | `encodeBase64(Byte[] data)` Produce a Writable object which writes the Base64 encoding of the byte array.
    `` | `static Writable` | `encodeBase64(byte[] data, boolean chunked)` Produce a Writable object which writes the Base64 encoding of the byte array.
    `` | `static Writable` | `encodeBase64(byte[] data)` Produce a Writable object which writes the Base64 encoding of the byte array.
    `` | `static Writable` | `encodeBase64Url(Byte[] data)` Produce a Writable object which writes the Base64 URL and Filename Safe encoding of the byte array.
    `` | `static Writable` | `encodeBase64Url(Byte[] data, boolean pad)` Produce a Writable object which writes the Base64 URL and Filename Safe encoding of the byte array.
    `` | `static Writable` | `encodeBase64Url(byte[] data)` Produce a Writable object which writes the Base64 URL and Filename Safe encoding of the byte array.
    `` | `static Writable` | `encodeBase64Url(byte[] data, boolean pad)` Produce a Writable object which writes the Base64 URL and Filename Safe encoding of the byte array.
    `` | `static Writable` | `encodeHex(Byte[] data)` Produces a Writable that writes the hex encoding of the Byte[].
    `` | `static Writable` | `encodeHex(byte[] data)` Produces a Writable that writes the hex encoding of the byte[].
    `` | `static String` | `md5(CharSequence self)` Calculate md5 of the CharSequence instance
    `` | `static String` | `md5(byte[] self)` Calculate md5 of the byte array
    `` | `static String` | `sha256(CharSequence self)` Calculate SHA-256 of the CharSequence instance
    `` | `static String` | `sha256(byte[] self)` Calculate SHA-256 of the byte array

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Method Detail

    - #### public static byte[] decodeBase64(String value)

      Decode the String from Base64 into a byte array.

      Parameters:
        `value` - the string to be decoded
      Returns:
        the decoded bytes as an array
      Since:
        1.0

    - #### public static byte[] decodeBase64Url(String value)

      Decodes a Base64 URL and Filename Safe encoded String into a byte array.

      Parameters:
        `value` - the string to be decoded
      Returns:
        the decoded bytes as an array
      Since:
        2.5.0

    - #### public static byte[] decodeHex(String value)

      Decodes a hex string to a byte array. The hex string can contain either upper case or lower case letters.

      throws:
        NumberFormatException If the string contains an odd number of characters or if the characters are not valid hexadecimal values.
      Parameters:
        `value` - string to be decoded
      Returns:
        decoded byte array

    - #### public static String digest(CharSequence self, String algorithm)

      digest the CharSequence instance

      throws:
        NoSuchAlgorithmException if the algorithm not found
      Parameters:
        `algorithm` - the name of the algorithm requested, e.g. MD5, SHA-1, SHA-256, etc.
      Returns:
        digested value
      Since:
        2.5.0
      See Also:
        MessageDigest#getInstance(java.lang.String)

    - #### public static String digest(byte[] self, String algorithm)

      digest the byte array

      throws:
        NoSuchAlgorithmException if the algorithm not found
      Parameters:
        `algorithm` - the name of the algorithm requested, e.g. MD5, SHA-1, SHA-256, etc.
      Returns:
        digested value
      Since:
        2.5.0
      See Also:
        MessageDigest#getInstance(java.lang.String)

    - #### public static Writable encodeBase64(Byte[] data, boolean chunked)

      Produce a Writable object which writes the Base64 encoding of the byte array. Calling toString() on the result returns the encoding as a String. For more information on Base64 encoding and chunking see `RFC 4648`.

      Parameters:
        `data` - Byte array to be encoded
        `chunked` - whether or not the Base64 encoded data should be MIME chunked
      Returns:
        object which will write the Base64 encoding of the byte array
      Since:
        1.5.1

    - #### public static Writable encodeBase64(Byte[] data)

      Produce a Writable object which writes the Base64 encoding of the byte array. Calling toString() on the result returns the encoding as a String. For more information on Base64 encoding and chunking see `RFC 4648`.

      Parameters:
        `data` - Byte array to be encoded
      Returns:
        object which will write the Base64 encoding of the byte array
      Since:
        1.0

    - #### public static Writable encodeBase64(byte[] data, boolean chunked)

      Produce a Writable object which writes the Base64 encoding of the byte array. Calling toString() on the result returns the encoding as a String. For more information on Base64 encoding and chunking see `RFC 4648`.

      Parameters:
        `data` - byte array to be encoded
        `chunked` - whether or not the Base64 encoded data should be MIME chunked
      Returns:
        object which will write the Base64 encoding of the byte array
      Since:
        1.5.7

    - #### public static Writable encodeBase64(byte[] data)

      Produce a Writable object which writes the Base64 encoding of the byte array. Calling toString() on the result returns the encoding as a String. For more information on Base64 encoding and chunking see `RFC 4648`.

      Parameters:
        `data` - byte array to be encoded
      Returns:
        object which will write the Base64 encoding of the byte array
      Since:
        1.0

    - #### public static Writable encodeBase64Url(Byte[] data)

      Produce a Writable object which writes the Base64 URL and Filename Safe encoding of the byte array. Calling toString() on the result returns the encoding as a String. For more information on Base64 URL and Filename Safe encoding see `RFC 4648 - Section 5 Base 64 Encoding with URL and Filename Safe Alphabet`.

      The method omits padding and is equivalent to calling EncodingGroovyMethods.encodeBase64Url with a value of `false`.

      Parameters:
        `data` - Byte array to be encoded
      Returns:
        object which will write the Base64 URL and Filename Safe encoding of the byte array
      See Also:
        EncodingGroovyMethods.encodeBase64Url
      Since:
        2.5.0

    - #### public static Writable encodeBase64Url(Byte[] data, boolean pad)

      Produce a Writable object which writes the Base64 URL and Filename Safe encoding of the byte array. Calling toString() on the result returns the encoding as a String. For more information on Base64 URL and Filename Safe encoding see `RFC 4648 - Section 5 Base 64 Encoding with URL and Filename Safe Alphabet`.

      Parameters:
        `data` - Byte array to be encoded
        `pad` - whether or not the encoded data should be padded
      Returns:
        object which will write the Base64 URL and Filename Safe encoding of the byte array
      Since:
        2.5.0

    - #### public static Writable encodeBase64Url(byte[] data)

      Produce a Writable object which writes the Base64 URL and Filename Safe encoding of the byte array. Calling toString() on the result returns the encoding as a String. For more information on Base64 URL and Filename Safe encoding see `RFC 4648 - Section 5 Base 64 Encoding with URL and Filename Safe Alphabet`.

      The method omits padding and is equivalent to calling EncodingGroovyMethods.encodeBase64Url with a value of `false`.

      Parameters:
        `data` - Byte array to be encoded
      Returns:
        object which will write the Base64 URL and Filename Safe encoding of the byte array
      See Also:
        EncodingGroovyMethods.encodeBase64Url
      Since:
        2.5.0

    - #### public static Writable encodeBase64Url(byte[] data, boolean pad)

      Produce a Writable object which writes the Base64 URL and Filename Safe encoding of the byte array. Calling toString() on the result returns the encoding as a String. For more information on Base64 URL and Filename Safe encoding see `RFC 4648 - Section 5 Base 64 Encoding with URL and Filename Safe Alphabet`.

      Parameters:
        `data` - Byte array to be encoded
        `pad` - whether or not the encoded data should be padded
      Returns:
        object which will write the Base64 URL and Filename Safe encoding of the byte array
      Since:
        2.5.0

    - #### public static Writable encodeHex(Byte[] data)

      Produces a Writable that writes the hex encoding of the Byte[]. Calling toString() on this Writable returns the hex encoding as a String. The hex encoding includes two characters for each byte and all letters are lower case.

      Parameters:
        `data` - byte array to be encoded
      Returns:
        object which will write the hex encoding of the byte array
      See Also:
        Integer.toHexString

    - #### public static Writable encodeHex(byte[] data)

      Produces a Writable that writes the hex encoding of the byte[]. Calling toString() on this Writable returns the hex encoding as a String. The hex encoding includes two characters for each byte and all letters are lower case.

      Parameters:
        `data` - byte array to be encoded
      Returns:
        object which will write the hex encoding of the byte array
      See Also:
        Integer.toHexString

    - #### public static String md5(CharSequence self)

      Calculate md5 of the CharSequence instance

      throws:
        NoSuchAlgorithmException if MD5 algorithm not found
      Returns:
        md5 value
      Since:
        2.5.0

    - #### public static String md5(byte[] self)

      Calculate md5 of the byte array

      throws:
        NoSuchAlgorithmException if MD5 algorithm not found
      Returns:
        md5 value
      Since:
        2.5.0

    - #### public static String sha256(CharSequence self)

      Calculate SHA-256 of the CharSequence instance

      throws:
        NoSuchAlgorithmException if SHA-256 algorithm not found
      Returns:
        SHA-256 value
      Since:
        2.5.3

    - #### public static String sha256(byte[] self)

      Calculate SHA-256 of the byte array

      throws:
        NoSuchAlgorithmException if SHA-256 algorithm not found
      Returns:
        SHA-256 value
      Since:
        2.5.3