# Interface Encoder

All Known Subinterfaces:
  `BinaryEncoder, StringEncoder`

All Known Implementing Classes:
  `AbstractCaverphone, Base16, Base32, Base64, BaseNCodec, BCodec, BeiderMorseEncoder, BinaryCodec, Caverphone, Caverphone1, Caverphone2, ColognePhonetic, DaitchMokotoffSoundex, DoubleMetaphone, Hex, MatchRatingApproachEncoder, Metaphone, Nysiis, PercentCodec, QCodec, QuotedPrintableCodec, RefinedSoundex, Soundex, URLCodec`

public interface Encoder
Provides the highest level of abstraction for Encoders.

This is the sister interface of `Decoder`. Every implementation of Encoder provides this common generic interface which allows a user to pass a generic Object to any Encoder implementation in the codec package.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `encode(Object source)`
  Encodes an "Object" and returns the encoded content as an Object.

- ## Method Details

  - ### encode

    Object encode(Object source) throws EncoderException
    Encodes an "Object" and returns the encoded content as an Object. The Objects here may just be `byte[]` or `String`s depending on the implementation used.
    Parameters:
      `source` - An object to encode.
    Returns:
      An "encoded" Object.
    Throws:
      `EncoderException` - An encoder exception is thrown if the encoder experiences a failure condition during the encoding process.