public class DoubleMetaphone
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
class |
DoubleMetaphone.DoubleMetaphoneResult
Inner class for storing results, since there is the optional alternate
encoding.
|
Modifier and Type | Field and Description |
---|---|
private static java.lang.String[] |
ES_EP_EB_EL_EY_IB_IL_IN_IE_EI_ER |
private static java.lang.String[] |
L_R_N_M_B_H_F_V_W_SPACE |
private static java.lang.String[] |
L_T_K_S_N_M_B_Z |
private int |
maxCodeLen
Maximum length of an encoding, default is 4
|
private static java.lang.String[] |
SILENT_START
Prefixes when present which are not pronounced
|
private static java.lang.String |
VOWELS
"Vowels" to test for
|
Constructor and Description |
---|
DoubleMetaphone()
Creates an instance of this DoubleMetaphone encoder
|
Modifier and Type | Method and Description |
---|---|
protected char |
charAt(java.lang.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 |
private java.lang.String |
cleanInput(java.lang.String input)
Cleans the input
|
private boolean |
conditionC0(java.lang.String value,
int index)
Complex condition 0 for 'C'
|
private boolean |
conditionCH0(java.lang.String value,
int index)
Complex condition 0 for 'CH'
|
private boolean |
conditionCH1(java.lang.String value,
int index)
Complex condition 1 for 'CH'
|
private boolean |
conditionL0(java.lang.String value,
int index)
Complex condition 0 for 'L'
|
private boolean |
conditionM0(java.lang.String value,
int index)
Complex condition 0 for 'M'
|
private static boolean |
contains(java.lang.String value,
int start,
int length,
java.lang.String criteria)
Shortcut method with 1 criteria
|
protected static boolean |
contains(java.lang.String value,
int start,
int length,
java.lang.String[] criteria)
Determines whether
value contains any of the criteria starting at index start and
matching up to length length |
private static boolean |
contains(java.lang.String value,
int start,
int length,
java.lang.String criteria1,
java.lang.String criteria2)
Shortcut method with 2 criteria
|
private static boolean |
contains(java.lang.String value,
int start,
int length,
java.lang.String criteria1,
java.lang.String criteria2,
java.lang.String criteria3)
Shortcut method with 3 criteria
|
private static boolean |
contains(java.lang.String value,
int start,
int length,
java.lang.String criteria1,
java.lang.String criteria2,
java.lang.String criteria3,
java.lang.String criteria4)
Shortcut method with 4 criteria
|
private static boolean |
contains(java.lang.String value,
int start,
int length,
java.lang.String criteria1,
java.lang.String criteria2,
java.lang.String criteria3,
java.lang.String criteria4,
java.lang.String criteria5)
Shortcut method with 5 criteria
|
private static boolean |
contains(java.lang.String value,
int start,
int length,
java.lang.String criteria1,
java.lang.String criteria2,
java.lang.String criteria3,
java.lang.String criteria4,
java.lang.String criteria5,
java.lang.String criteria6)
Shortcut method with 6 criteria
|
java.lang.String |
doubleMetaphone(java.lang.String value)
Encode a value with Double Metaphone
|
java.lang.String |
doubleMetaphone(java.lang.String value,
boolean alternate)
Encode a value with Double Metaphone, optionally using the alternate
encoding.
|
java.lang.Object |
encode(java.lang.Object obj)
Encode the value using DoubleMetaphone.
|
java.lang.String |
encode(java.lang.String value)
Encode the value using DoubleMetaphone.
|
int |
getMaxCodeLen()
Returns the maxCodeLen.
|
private int |
handleAEIOUY(DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'A', 'E', 'I', 'O', 'U', and 'Y' cases
|
private int |
handleC(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'C' cases
|
private int |
handleCC(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'CC' cases
|
private int |
handleCH(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'CH' cases
|
private int |
handleD(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'D' cases
|
private int |
handleG(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index,
boolean slavoGermanic)
Handles 'G' cases
|
private int |
handleGH(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'GH' cases
|
private int |
handleH(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'H' cases
|
private int |
handleJ(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index,
boolean slavoGermanic)
Handles 'J' cases
|
private int |
handleL(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'L' cases
|
private int |
handleP(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'P' cases
|
private int |
handleR(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index,
boolean slavoGermanic)
Handles 'R' cases
|
private int |
handleS(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index,
boolean slavoGermanic)
Handles 'S' cases
|
private int |
handleSC(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'SC' cases
|
private int |
handleT(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'T' cases
|
private int |
handleW(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'W' cases
|
private int |
handleX(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index)
Handles 'X' cases
|
private int |
handleZ(java.lang.String value,
DoubleMetaphone.DoubleMetaphoneResult result,
int index,
boolean slavoGermanic)
Handles 'Z' cases
|
boolean |
isDoubleMetaphoneEqual(java.lang.String value1,
java.lang.String value2)
Check if the Double Metaphone values of two
String values
are equal. |
boolean |
isDoubleMetaphoneEqual(java.lang.String value1,
java.lang.String value2,
boolean alternate)
Check if the Double Metaphone values of two
String values
are equal, optionally using the alternate value. |
private boolean |
isSilentStart(java.lang.String value)
Determines whether or not the value starts with a silent letter.
|
private boolean |
isSlavoGermanic(java.lang.String value)
Determines whether or not a value is of slavo-germanic orgin.
|
private boolean |
isVowel(char ch)
Determines whether or not a character is a vowel or not
|
void |
setMaxCodeLen(int maxCodeLen)
Sets the maxCodeLen.
|
private static final java.lang.String VOWELS
private static final java.lang.String[] SILENT_START
private static final java.lang.String[] L_R_N_M_B_H_F_V_W_SPACE
private static final java.lang.String[] ES_EP_EB_EL_EY_IB_IL_IN_IE_EI_ER
private static final java.lang.String[] L_T_K_S_N_M_B_Z
private int maxCodeLen
public DoubleMetaphone()
public java.lang.String doubleMetaphone(java.lang.String value)
value
- String to encodepublic java.lang.String doubleMetaphone(java.lang.String value, boolean alternate)
value
- String to encodealternate
- use alternate encodepublic java.lang.Object encode(java.lang.Object obj) throws EncoderException
obj
is a String
(like Metaphone
).obj
- Object to encode (should be of type String)EncoderException
- encode parameter is not of type Stringpublic java.lang.String encode(java.lang.String value)
value
- String to encodepublic boolean isDoubleMetaphoneEqual(java.lang.String value1, java.lang.String value2)
String
values
are equal.value1
- The left-hand side of the encoded String.equals(Object)
.value2
- The right-hand side of the encoded String.equals(Object)
.true
if the encoded String
s are equal;
false
otherwise.isDoubleMetaphoneEqual(String,String,boolean)
public boolean isDoubleMetaphoneEqual(java.lang.String value1, java.lang.String value2, boolean alternate)
String
values
are equal, optionally using the alternate value.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
.true
if the encoded String
s are equal;
false
otherwise.public int getMaxCodeLen()
public void setMaxCodeLen(int maxCodeLen)
maxCodeLen
- The maxCodeLen to setprivate int handleAEIOUY(DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleC(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleCC(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleCH(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleD(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleG(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index, boolean slavoGermanic)
private int handleGH(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleH(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleJ(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index, boolean slavoGermanic)
private int handleL(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleP(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleR(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index, boolean slavoGermanic)
private int handleS(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index, boolean slavoGermanic)
private int handleSC(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleT(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleW(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleX(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index)
private int handleZ(java.lang.String value, DoubleMetaphone.DoubleMetaphoneResult result, int index, boolean slavoGermanic)
private boolean conditionC0(java.lang.String value, int index)
private boolean conditionCH0(java.lang.String value, int index)
private boolean conditionCH1(java.lang.String value, int index)
private boolean conditionL0(java.lang.String value, int index)
private boolean conditionM0(java.lang.String value, int index)
private boolean isSlavoGermanic(java.lang.String value)
private boolean isVowel(char ch)
private boolean isSilentStart(java.lang.String value)
true
if the value starts with any of 'GN', 'KN',
'PN', 'WR' or 'PS'.private java.lang.String cleanInput(java.lang.String input)
protected char charAt(java.lang.String value, int index)
index
if available, otherwise
it returns Character.MIN_VALUE
so that there is some sort
of a defaultprivate static boolean contains(java.lang.String value, int start, int length, java.lang.String criteria)
private static boolean contains(java.lang.String value, int start, int length, java.lang.String criteria1, java.lang.String criteria2)
private static boolean contains(java.lang.String value, int start, int length, java.lang.String criteria1, java.lang.String criteria2, java.lang.String criteria3)
private static boolean contains(java.lang.String value, int start, int length, java.lang.String criteria1, java.lang.String criteria2, java.lang.String criteria3, java.lang.String criteria4)
private static boolean contains(java.lang.String value, int start, int length, java.lang.String criteria1, java.lang.String criteria2, java.lang.String criteria3, java.lang.String criteria4, java.lang.String criteria5)
private static boolean contains(java.lang.String value, int start, int length, java.lang.String criteria1, java.lang.String criteria2, java.lang.String criteria3, java.lang.String criteria4, java.lang.String criteria5, java.lang.String criteria6)
protected static boolean contains(java.lang.String value, int start, int length, java.lang.String[] criteria)
value
contains any of the criteria starting at index start
and
matching up to length length