This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-codec.git


The following commit(s) were added to refs/heads/master by this push:
     new fb84f6d  Java 8 improvements: (#106)
fb84f6d is described below

commit fb84f6d9732d44cda0edf449f7a5cba0b340731a
Author: Arturo Bernal <arturobern...@gmail.com>
AuthorDate: Sun Feb 20 01:45:38 2022 +0100

    Java 8 improvements: (#106)
    
    * Replace Anonymous with lambda.
    * Use Comparator
---
 .../codec/language/DaitchMokotoffSoundex.java      | 15 +---
 .../org/apache/commons/codec/language/bm/Rule.java | 95 ++++++----------------
 2 files changed, 27 insertions(+), 83 deletions(-)

diff --git 
a/src/main/java/org/apache/commons/codec/language/DaitchMokotoffSoundex.java 
b/src/main/java/org/apache/commons/codec/language/DaitchMokotoffSoundex.java
index 1e92aa5..3446cbf 100644
--- a/src/main/java/org/apache/commons/codec/language/DaitchMokotoffSoundex.java
+++ b/src/main/java/org/apache/commons/codec/language/DaitchMokotoffSoundex.java
@@ -232,12 +232,7 @@ public class DaitchMokotoffSoundex implements 
StringEncoder {
         // sort RULES by pattern length in descending order
         for (final Map.Entry<Character, List<Rule>> rule : RULES.entrySet()) {
             final List<Rule> ruleList = rule.getValue();
-            ruleList.sort(new Comparator<Rule>() {
-                @Override
-                public int compare(final Rule rule1, final Rule rule2) {
-                    return rule2.getPatternLength() - rule1.getPatternLength();
-                }
-            });
+            ruleList.sort((rule1, rule2) -> rule2.getPatternLength() - 
rule1.getPatternLength());
         }
     }
 
@@ -305,11 +300,7 @@ public class DaitchMokotoffSoundex implements 
StringEncoder {
 
                         final Rule r = new Rule(pattern, replacement1, 
replacement2, replacement3);
                         final char patternKey = r.pattern.charAt(0);
-                        List<Rule> rules = ruleMapping.get(patternKey);
-                        if (rules == null) {
-                            rules = new ArrayList<>();
-                            ruleMapping.put(patternKey, rules);
-                        }
+                        final List<Rule> rules = 
ruleMapping.computeIfAbsent(patternKey, k -> new ArrayList<>());
                         rules.add(r);
                     } catch (final IllegalArgumentException e) {
                         throw new IllegalStateException(
@@ -500,7 +491,7 @@ public class DaitchMokotoffSoundex implements StringEncoder 
{
             }
 
             // use an EMPTY_LIST to avoid false positive warnings wrt 
potential null pointer access
-            final List<Branch> nextBranches = branching ? new 
ArrayList<Branch>() : Collections.<Branch>emptyList();
+            final List<Branch> nextBranches = branching ? new ArrayList<>() : 
Collections.emptyList();
 
             for (final Rule rule : rules) {
                 if (rule.matches(inputContext)) {
diff --git a/src/main/java/org/apache/commons/codec/language/bm/Rule.java 
b/src/main/java/org/apache/commons/codec/language/bm/Rule.java
index 8b528ba..a37e794 100644
--- a/src/main/java/org/apache/commons/codec/language/bm/Rule.java
+++ b/src/main/java/org/apache/commons/codec/language/bm/Rule.java
@@ -81,27 +81,24 @@ import 
org.apache.commons.codec.language.bm.Languages.LanguageSet;
 public class Rule {
 
     public static final class Phoneme implements PhonemeExpr {
-        public static final Comparator<Phoneme> COMPARATOR = new 
Comparator<Phoneme>() {
-            @Override
-            public int compare(final Phoneme o1, final Phoneme o2) {
-                final int o1Length = o1.phonemeText.length();
-                final int o2Length = o2.phonemeText.length();
-                for (int i = 0; i < o1Length; i++) {
-                    if (i >= o2Length) {
-                        return +1;
-                    }
-                    final int c = o1.phonemeText.charAt(i) - 
o2.phonemeText.charAt(i);
-                    if (c != 0) {
-                        return c;
-                    }
+        public static final Comparator<Phoneme> COMPARATOR = (o1, o2) -> {
+            final int o1Length = o1.phonemeText.length();
+            final int o2Length = o2.phonemeText.length();
+            for (int i = 0; i < o1Length; i++) {
+                if (i >= o2Length) {
+                    return +1;
                 }
-
-                if (o1Length < o2Length) {
-                    return -1;
+                final int c = o1.phonemeText.charAt(i) - 
o2.phonemeText.charAt(i);
+                if (c != 0) {
+                    return c;
                 }
+            }
 
-                return 0;
+            if (o1Length < o2Length) {
+                return -1;
             }
+
+            return 0;
         };
 
         private final StringBuilder phonemeText;
@@ -194,12 +191,7 @@ public class Rule {
         boolean isMatch(CharSequence input);
     }
 
-    public static final RPattern ALL_STRINGS_RMATCHER = new RPattern() {
-        @Override
-        public boolean isMatch(final CharSequence input) {
-            return true;
-        }
-    };
+    public static final RPattern ALL_STRINGS_RMATCHER = input -> true;
 
     public static final String ALL = "ALL";
 
@@ -465,11 +457,7 @@ public class Rule {
                             }
                         };
                         final String patternKey = r.pattern.substring(0,1);
-                        List<Rule> rules = lines.get(patternKey);
-                        if (rules == null) {
-                            rules = new ArrayList<>();
-                            lines.put(patternKey, rules);
-                        }
+                        final List<Rule> rules = 
lines.computeIfAbsent(patternKey, k -> new ArrayList<>());
                         rules.add(r);
                     } catch (final IllegalArgumentException e) {
                         throw new IllegalStateException("Problem parsing line 
'" + currentLine + "' in " +
@@ -500,19 +488,9 @@ public class Rule {
                 // exact match
                 if (content.isEmpty()) {
                     // empty
-                    return new RPattern() {
-                        @Override
-                        public boolean isMatch(final CharSequence input) {
-                            return input.length() == 0;
-                        }
-                    };
+                    return input -> input.length() == 0;
                 }
-                return new RPattern() {
-                    @Override
-                    public boolean isMatch(final CharSequence input) {
-                        return input.equals(content);
-                    }
-                };
+                return input -> input.equals(content);
             }
             if ((startsWith || endsWith) && content.isEmpty()) {
                 // matches every string
@@ -520,21 +498,11 @@ public class Rule {
             }
             if (startsWith) {
                 // matches from start
-                return new RPattern() {
-                    @Override
-                    public boolean isMatch(final CharSequence input) {
-                        return startsWith(input, content);
-                    }
-                };
+                return input -> startsWith(input, content);
             }
             if (endsWith) {
                 // matches from start
-                return new RPattern() {
-                    @Override
-                    public boolean isMatch(final CharSequence input) {
-                        return endsWith(input, content);
-                    }
-                };
+                return input -> endsWith(input, content);
             }
         } else {
             final boolean startsWithBox = content.startsWith("[");
@@ -553,31 +521,16 @@ public class Rule {
 
                     if (startsWith && endsWith) {
                         // exact match
-                        return new RPattern() {
-                            @Override
-                            public boolean isMatch(final CharSequence input) {
-                                return input.length() == 1 && 
contains(bContent, input.charAt(0)) == shouldMatch;
-                            }
-                        };
+                        return input -> input.length() == 1 && 
contains(bContent, input.charAt(0)) == shouldMatch;
                     }
                     if (startsWith) {
                         // first char
-                        return new RPattern() {
-                            @Override
-                            public boolean isMatch(final CharSequence input) {
-                                return input.length() > 0 && 
contains(bContent, input.charAt(0)) == shouldMatch;
-                            }
-                        };
+                        return input -> input.length() > 0 && 
contains(bContent, input.charAt(0)) == shouldMatch;
                     }
                     if (endsWith) {
                         // last char
-                        return new RPattern() {
-                            @Override
-                            public boolean isMatch(final CharSequence input) {
-                                return input.length() > 0 &&
-                                       contains(bContent, 
input.charAt(input.length() - 1)) == shouldMatch;
-                            }
-                        };
+                        return input -> input.length() > 0 &&
+                               contains(bContent, input.charAt(input.length() 
- 1)) == shouldMatch;
                     }
                 }
             }

Reply via email to