# Class MatchRatingApproachEncoder

java.lang.Object
org.apache.commons.codec.language.MatchRatingApproachEncoder

All Implemented Interfaces:
  `Encoder, StringEncoder`

public class MatchRatingApproachEncoder extends Object implements StringEncoder
Match Rating Approach Phonetic Algorithm Developed by Western Airlines in 1977.

This class is immutable and thread-safe.

Since:
  1.8
See Also:
  - Wikipedia - Match Rating Approach

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MatchRatingApproachEncoder()`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final Object`
  `encode(Object object)`
  Encodes an Object using the Match Rating Approach algorithm.
  `final String`
  `encode(String name)`
  Encodes a String using the Match Rating Approach (MRA) algorithm.
  `boolean`
  `isEncodeEquals(String name1, String name2)`
  Determines if two names are homophonous via Match Rating Approach (MRA) algorithm.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### MatchRatingApproachEncoder

    public MatchRatingApproachEncoder()
    Constructs a new instance.

- ## Method Details

  - ### encode

    public final Object encode(Object object) throws EncoderException
    Encodes an Object using the Match Rating Approach algorithm. Method is here to satisfy the requirements of the Encoder interface Throws an EncoderException if input object is not of type `String`.
    Specified by:
      `encode` in interface `Encoder`
    Parameters:
      `object` - Object to encode.
    Returns:
      An object (or type `String`) containing the Match Rating Approach code which corresponds to the String supplied.
    Throws:
      `EncoderException` - if the parameter supplied is not of type `String`.

  - ### encode

    public final String encode(String name)
    Encodes a String using the Match Rating Approach (MRA) algorithm.
    Specified by:
      `encode` in interface `StringEncoder`
    Parameters:
      `name` - String object to encode.
    Returns:
      The MRA code corresponding to the String supplied.

  - ### isEncodeEquals

    public boolean isEncodeEquals(String name1, String name2)
    Determines if two names are homophonous via Match Rating Approach (MRA) algorithm. It should be noted that the strings are cleaned in the same way as `encode(String)`.
    Parameters:
      `name1` - First of the 2 strings (names) to compare.
      `name2` - Second of the 2 names to compare.
    Returns:
      `true` if the encodings are identical `false` otherwise.