Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.codec.language
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.

This class is conditionally thread-safe. The instance field `maxCodeLen` is mutable `setMaxCodeLen(int)` but is not volatile, and accesses are not synchronized. If an instance of the class is shared between threads, the caller needs to ensure that suitable synchronization is used to ensure safe publication of the value between threads, and must not invoke `setMaxCodeLen(int)` after initial setup.

Version:
  $Id: DoubleMetaphone.java 1378724 2012-08-29 21:02:47Z tn $
See Also:
  Original Article, http://en.wikipedia.org/wiki/Metaphone

Nested Class Summary
`class` | `DoubleMetaphone.DoubleMetaphoneResult` Inner class for storing results, since there is the optional alternate encoding.

Constructor Summary
`DoubleMetaphone()` Creates an instance of this DoubleMetaphone encoder

Method Summary
`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`

Constructor Detail

### DoubleMetaphone

    public DoubleMetaphone()

  Creates an instance of this DoubleMetaphone encoder

Method Detail

### 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 `String`s 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 `String`s 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`.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.