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; } } }