org.codehaus.groovy.runtime

## Class EncodingGroovyMethods

- java.lang.Object
- - org.codehaus.groovy.runtime.EncodingGroovyMethods

-     public class EncodingGroovyMethods
      extends Object

  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.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `EncodingGroovyMethods()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method 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(byte[] self, String algorithm)` digest the byte array
    `static String` | `digest(CharSequence self, String algorithm)` digest the CharSequence instance
    `static Writable` | `encodeBase64(byte[] data)` 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, boolean chunked)` 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)` 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, 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(byte[] self)` Calculate md5 of the byte array
    `static String` | `md5(CharSequence self)` Calculate md5 of the CharSequence instance
    `static String` | `sha256(byte[] self)` Calculate SHA-256 of the byte array
    `static String` | `sha256(CharSequence self)` Calculate SHA-256 of the CharSequence instance

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

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

- - ### Constructor Detail

    - #### EncodingGroovyMethods

          public EncodingGroovyMethods()

  - ### Method Detail

    - #### encodeBase64

          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

    - #### encodeBase64

          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

    - #### encodeBase64

          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

    - #### encodeBase64

          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

    - #### encodeBase64Url

          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 `encodeBase64Url(Byte[], boolean)` 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
      Since:
        2.5.0
      See Also:
        `encodeBase64Url(Byte[], boolean)`

    - #### encodeBase64Url

          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

    - #### encodeBase64Url

          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 `encodeBase64Url(byte[], boolean)` 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
      Since:
        2.5.0
      See Also:
        `encodeBase64Url(byte[], boolean)`

    - #### encodeBase64Url

          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

    - #### decodeBase64

          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

    - #### decodeBase64Url

          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

    - #### encodeHex

          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(int)`

    - #### encodeHex

          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(int)`

    - #### decodeHex

          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.
      Parameters:
        `value` - string to be decoded
      Returns:
        decoded byte array
      Throws:
        `NumberFormatException` - If the string contains an odd number of characters or if the characters are not valid hexadecimal values.

    - #### md5

          public static String md5(CharSequence self)
                            throws NoSuchAlgorithmException

      Calculate md5 of the CharSequence instance
      Returns:
        md5 value
      Throws:
        `NoSuchAlgorithmException` - if MD5 algorithm not found
      Since:
        2.5.0

    - #### md5

          public static String md5(byte[] self)
                            throws NoSuchAlgorithmException

      Calculate md5 of the byte array
      Returns:
        md5 value
      Throws:
        `NoSuchAlgorithmException` - if MD5 algorithm not found
      Since:
        2.5.0

    - #### sha256

          public static String sha256(CharSequence self)
                               throws NoSuchAlgorithmException

      Calculate SHA-256 of the CharSequence instance
      Returns:
        SHA-256 value
      Throws:
        `NoSuchAlgorithmException` - if SHA-256 algorithm not found
      Since:
        2.5.3

    - #### sha256

          public static String sha256(byte[] self)
                               throws NoSuchAlgorithmException

      Calculate SHA-256 of the byte array
      Returns:
        SHA-256 value
      Throws:
        `NoSuchAlgorithmException` - if SHA-256 algorithm not found
      Since:
        2.5.3

    - #### digest

          public static String digest(CharSequence self,
                                      String algorithm)
                               throws NoSuchAlgorithmException

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

    - #### digest

          public static String digest(byte[] self,
                                      String algorithm)
                               throws NoSuchAlgorithmException

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