Package org.apache.commons.codec.language.bm

# Class PhoneticEngine

java.lang.Object
org.apache.commons.codec.language.bm.PhoneticEngine

public class PhoneticEngine extends Object
Converts words into potential phonetic representations.

This is a two-stage process. Firstly, the word is converted into a phonetic representation that takes into account the likely source language. Next, this phonetic representation is converted into a pan-European 'average' representation, allowing comparison between different versions of essentially the same word from different languages.

This class is intentionally immutable and thread-safe. If you wish to alter the settings for a PhoneticEngine, you must make a new one with the updated settings.

Ported from phoneticengine.php

Since:
  1.6

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PhoneticEngine(NameType nameType, RuleType ruleType, boolean concatenate)`
  Generates a new, fully-configured phonetic engine.
  `PhoneticEngine(NameType nameType, RuleType ruleType, boolean concatenate, int maxPhonemes)`
  Generates a new, fully-configured phonetic engine.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `encode(String input)`
  Encodes a string to its phonetic representation.
  `String`
  `encode(String input, Languages.LanguageSet languageSet)`
  Encodes an input string into an output phonetic representation, given a set of possible origin languages.
  `Lang`
  `getLang()`
  Gets the Lang language guessing rules being used.
  `int`
  `getMaxPhonemes()`
  Gets the maximum number of phonemes the engine will calculate for a given input.
  `NameType`
  `getNameType()`
  Gets the NameType being used.
  `RuleType`
  `getRuleType()`
  Gets the RuleType being used.
  `boolean`
  `isConcat()`
  Gets if multiple phonetic encodings are concatenated or if just the first one is kept.

  ### Methods inherited from class java.lang.Object

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

- ## Constructor Details

  - ### PhoneticEngine

    public PhoneticEngine(NameType nameType, RuleType ruleType, boolean concatenate)
    Generates a new, fully-configured phonetic engine.
    Parameters:
      `nameType` - the type of names it will use
      `ruleType` - the type of rules it will apply
      `concatenate` - if it will concatenate multiple encodings

  - ### PhoneticEngine

    public PhoneticEngine(NameType nameType, RuleType ruleType, boolean concatenate, int maxPhonemes)
    Generates a new, fully-configured phonetic engine.
    Parameters:
      `nameType` - the type of names it will use
      `ruleType` - the type of rules it will apply
      `concatenate` - if it will concatenate multiple encodings
      `maxPhonemes` - the maximum number of phonemes that will be handled
    Since:
      1.7

- ## Method Details

  - ### encode

    public String encode(String input)
    Encodes a string to its phonetic representation.
    Parameters:
      `input` - the String to encode
    Returns:
      the encoding of the input

  - ### encode

    public String encode(String input, Languages.LanguageSet languageSet)
    Encodes an input string into an output phonetic representation, given a set of possible origin languages.
    Parameters:
      `input` - String to phoneticise; a String with dashes or spaces separating each word
      `languageSet` - set of possible origin languages
    Returns:
      a phonetic representation of the input; a String containing '-'-separated phonetic representations of the input

  - ### getLang

    public Lang getLang()
    Gets the Lang language guessing rules being used.
    Returns:
      the Lang in use

  - ### getMaxPhonemes

    public int getMaxPhonemes()
    Gets the maximum number of phonemes the engine will calculate for a given input.
    Returns:
      the maximum number of phonemes
    Since:
      1.7

  - ### getNameType

    public NameType getNameType()
    Gets the NameType being used.
    Returns:
      the NameType in use

  - ### getRuleType

    public RuleType getRuleType()
    Gets the RuleType being used.
    Returns:
      the RuleType in use

  - ### isConcat

    public boolean isConcat()
    Gets if multiple phonetic encodings are concatenated or if just the first one is kept.
    Returns:
      true if multiple phonetic encodings are returned, false if just the first is