Class DoubleMetaphone

java.lang.Object
org.apache.commons.codec.language.DoubleMetaphone
All Implemented Interfaces:
Encoder, StringEncoder

public class DoubleMetaphone
extends Object
implements StringEncoder
Encodes a string into a double metaphone value. This Implementation is based on the algorithm by Lawrence Philips.
Version:
$Id: DoubleMetaphone.java,v 1.24 2004/06/05 18:32:04 ggregory Exp $
Author:
Apache Software Foundation
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    class  DoubleMetaphone.DoubleMetaphoneResult
    Inner class for storing results, since there is the optional alternate encoding.
  • Field Summary

    Fields
    Modifier and Type Field Description
    protected int maxCodeLen
    Maximum length of an encoding, default is 4
  • Constructor Summary

    Constructors
    Constructor Description
    DoubleMetaphone()
    Creates an instance of this DoubleMetaphone encoder
  • Method Summary

    Modifier and Type Method Description
    protected char charAt​(String value, int index)
    Gets the character at index index if available, otherwise it returns Character.MIN_VALUE so that there is some sort of a default
    protected static boolean contains​(String value, int start, int length, String[] criteria)
    Determines whether value contains any of the criteria starting at index start and matching up to length length
    String doubleMetaphone​(String value)
    Encode a value with Double Metaphone
    String doubleMetaphone​(String value, boolean alternate)
    Encode a value with Double Metaphone, optionally using the alternate encoding.
    Object encode​(Object obj)
    Encode the value using DoubleMetaphone.
    String encode​(String value)
    Encode the value using DoubleMetaphone.
    int getMaxCodeLen()
    Returns the maxCodeLen.
    boolean isDoubleMetaphoneEqual​(String value1, String value2)
    Check if the Double Metaphone values of two String values are equal.
    boolean isDoubleMetaphoneEqual​(String value1, String value2, boolean alternate)
    Check if the Double Metaphone values of two String values are equal, optionally using the alternate value.
    void setMaxCodeLen​(int maxCodeLen)
    Sets the maxCodeLen.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • maxCodeLen

      protected int maxCodeLen
      Maximum length of an encoding, default is 4
  • Constructor Details

    • DoubleMetaphone

      public DoubleMetaphone()
      Creates an instance of this DoubleMetaphone encoder
  • Method Details

    • doubleMetaphone

      public String doubleMetaphone​(String value)
      Encode a value with Double Metaphone
      Parameters:
      value - String to encode
      Returns:
      an encoded string
    • doubleMetaphone

      public String doubleMetaphone​(String value, boolean alternate)
      Encode a value with Double Metaphone, optionally using the alternate encoding.
      Parameters:
      value - String to encode
      alternate - use alternate encode
      Returns:
      an encoded string
    • encode

      public Object encode​(Object obj) throws EncoderException
      Encode the value using DoubleMetaphone. It will only work if obj is a String (like Metaphone).
      Specified by:
      encode in interface Encoder
      Parameters:
      obj - Object to encode (should be of type String)
      Returns:
      An encoded Object (will be of type String)
      Throws:
      EncoderException - encode parameter is not of type String
    • encode

      public String encode​(String value)
      Encode the value using DoubleMetaphone.
      Specified by:
      encode in interface StringEncoder
      Parameters:
      value - String to encode
      Returns:
      An encoded String
    • isDoubleMetaphoneEqual

      public boolean isDoubleMetaphoneEqual​(String value1, String value2)
      Check if the Double Metaphone values of two String values are equal.
      Parameters:
      value1 - The left-hand side of the encoded String.equals(Object).
      value2 - The right-hand side of the encoded String.equals(Object).
      Returns:
      true if the encoded Strings are equal; false otherwise.
      See Also:
      isDoubleMetaphoneEqual(String,String,boolean)
    • isDoubleMetaphoneEqual

      public boolean isDoubleMetaphoneEqual​(String value1, String value2, boolean alternate)
      Check if the Double Metaphone values of two String values are equal, optionally using the alternate value.
      Parameters:
      value1 - The left-hand side of the encoded String.equals(Object).
      value2 - The right-hand side of the encoded String.equals(Object).
      alternate - use the alternate value if true.
      Returns:
      true if the encoded Strings are equal; false otherwise.
    • getMaxCodeLen

      public int getMaxCodeLen()
      Returns the maxCodeLen.
      Returns:
      int
    • setMaxCodeLen

      public void setMaxCodeLen​(int maxCodeLen)
      Sets the maxCodeLen.
      Parameters:
      maxCodeLen - The maxCodeLen to set
    • charAt

      protected char charAt​(String value, int index)
      Gets the character at index index if available, otherwise it returns Character.MIN_VALUE so that there is some sort of a default
    • contains

      protected static boolean contains​(String value, int start, int length, String[] criteria)
      Determines whether value contains any of the criteria starting at index start and matching up to length length