# codecs

## Purpose

Provides facility to register encoders and decoders of textual data as methods on any object

## Examples

    class HTMLCodec {
        static encode = { theTarget ->
            HtmlUtils.htmlEscape(theTarget.toString())
        }
        static decode = { theTarget ->
        	HtmlUtils.htmlUnescape(theTarget.toString())
        }
    }
    assert "&lt;p&gt;Hello World!&lt;/p&gt;" == "<p>Hello World!</p>".encodeAsHTML()
    assert "<p>Hello World!</p>" == "&lt;p&gt;Hello World!&lt;/p&gt;".decodeHTML()

## Description

This plug-in searches for classes that end in the convention `Codec` and dynamically registers `encodeAsCodec` and `decodeCodec` methods on `java.lang.Object` so that any data can be encoded and decoded. For more information refer to the section of Encoding and Decoding Objects in the user guide.

Provided Codecs:

- `HTMLCodec` - encodes/decodes HTML mark-up
- `URLCodec` - encodes/decodes URLs
- `JavascriptCodec` - encodes (escapes) Javascript
- `Base64Codec` - encodes/decodes Base64 data
- `HexCodec` - encodes a byte array or list of integers into a hex string, and decodes hex strings into byte array
- `MD5Codec` - encodes a byte array or list of integers, or the characters of a string (using default system encoding) into an MD5 digest as a hex string
- `MD5BytesCodec` - encodes a byte array or list of integers, or the characters of a string (using default system encoding) into an MD5 digest as a byte array
- `SHA1Codec` - encodes a byte array or list of integers, or the characters of a string (using default system encoding) into an SHA1 digest as a hex string
- `SHA1BytesCodec` - encodes a byte array or list of integers, or the characters of a string (using default system encoding) into an SHA1 digest as a byte array
- `SHA256Codec` - encodes a byte array or list of integers, or the characters of a string (using default system encoding) into an SHA256 digest as a hex string
- `SHA256BytesCodec` - encodes byte array or list of integers, or the characters of a string (using default system encoding) into an SHA256 digest as a byte array