Author: ggregory
Date: Sat Aug  6 16:51:17 2011
New Revision: 1154541

URL: http://svn.apache.org/viewvc?rev=1154541&view=rev
Log:
[CODEC-125] Implement a Beider-Morse phonetic matching codec. Apply Matthew's 
patch 
https://issues.apache.org/jira/secure/attachment/12489569/fixmeInvariant.patch. 
This patch hoists the l-invariant code out of the loop over l. The d'ortley 
test input string exercises this branch. The "van helsing" input string should 
be exercising the alternate branch. Thank you MP!

Modified:
    
commons/proper/codec/trunk/src/java/org/apache/commons/codec/language/bm/PhoneticEngine.java

Modified: 
commons/proper/codec/trunk/src/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
URL: 
http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/java/org/apache/commons/codec/language/bm/PhoneticEngine.java?rev=1154541&r1=1154540&r2=1154541&view=diff
==============================================================================
--- 
commons/proper/codec/trunk/src/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
 (original)
+++ 
commons/proper/codec/trunk/src/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
 Sat Aug  6 16:51:17 2011
@@ -287,6 +287,11 @@ public class PhoneticEngine {
         input = input.toLowerCase(Locale.ENGLISH).replace('-', ' ').trim();
 
         if (this.nameType == NameType.GENERIC) {
+            if (input.length() >= 2 && input.substring(0, 2).equals("d'")) { 
// check for d'
+                String remainder = input.substring(2);
+                String combined = "d" + remainder;
+                return "(" + encode(remainder) + ")-(" + encode(combined) + 
")";
+            }
             for (String l : NAME_PREFIXES.get(this.nameType)) {
                 // handle generic prefixes
                 if (input.startsWith(l + " ")) {
@@ -295,12 +300,6 @@ public class PhoneticEngine {
                     String combined = l + remainder; // input with prefix 
without space
                     return "(" + encode(remainder) + ")-(" + encode(combined) 
+ ")";
                 }
-                // fixme: this case is invariant on l
-                else if (input.length() >= 2 && input.substring(0, 
2).equals("d'")) { // check for d'
-                    String remainder = input.substring(2);
-                    String combined = "d" + remainder;
-                    return "(" + encode(remainder) + ")-(" + encode(combined) 
+ ")";
-                }
             }
         }
 


Reply via email to