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
commit ab7f0792599a625afdefad6796f154cd37db80f9 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Sun Jul 17 08:43:14 2022 -0400 Use forEach() --- .../codec/language/DaitchMokotoffSoundex.java | 5 +-- .../commons/codec/language/bm/PhoneticEngine.java | 38 +++++++--------------- .../org/apache/commons/codec/language/bm/Rule.java | 8 ++--- 3 files changed, 16 insertions(+), 35 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 d0cc6cbd..1f502b38 100644 --- a/src/main/java/org/apache/commons/codec/language/DaitchMokotoffSoundex.java +++ b/src/main/java/org/apache/commons/codec/language/DaitchMokotoffSoundex.java @@ -229,10 +229,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((rule1, rule2) -> rule2.getPatternLength() - rule1.getPatternLength()); - } + RULES.forEach((k, v) -> v.sort((rule1, rule2) -> rule2.getPatternLength() - rule1.getPatternLength())); } private static void parseRules(final Scanner scanner, final String location, diff --git a/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java b/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java index 8c2163d5..267e42b6 100644 --- a/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java +++ b/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java @@ -140,16 +140,7 @@ public class PhoneticEngine { * @return the stringified phoneme set */ public String makeString() { - final StringBuilder sb = new StringBuilder(); - - for (final Rule.Phoneme ph : this.phonemes) { - if (sb.length() > 0) { - sb.append("|"); - } - sb.append(ph.getPhonemeText()); - } - - return sb.toString(); + return phonemes.stream().map(Rule.Phoneme::getPhonemeText).collect(Collectors.joining("|")); } } @@ -314,22 +305,20 @@ public class PhoneticEngine { * @return the resulting phonemes */ private PhonemeBuilder applyFinalRules(final PhonemeBuilder phonemeBuilder, - final Map<String, List<Rule>> finalRules) { + final Map<String, List<Rule>> finalRules) { Objects.requireNonNull(finalRules, "finalRules"); if (finalRules.isEmpty()) { return phonemeBuilder; } - final Map<Rule.Phoneme, Rule.Phoneme> phonemes = - new TreeMap<>(Rule.Phoneme.COMPARATOR); + final Map<Rule.Phoneme, Rule.Phoneme> phonemes = new TreeMap<>(Rule.Phoneme.COMPARATOR); - for (final Rule.Phoneme phoneme : phonemeBuilder.getPhonemes()) { + phonemeBuilder.getPhonemes().forEach(phoneme -> { PhonemeBuilder subBuilder = PhonemeBuilder.empty(phoneme.getLanguages()); final String phonemeText = phoneme.getPhonemeText().toString(); for (int i = 0; i < phonemeText.length();) { - final RulesApplication rulesApplication = - new RulesApplication(finalRules, phonemeText, subBuilder, i, maxPhonemes).invoke(); + final RulesApplication rulesApplication = new RulesApplication(finalRules, phonemeText, subBuilder, i, maxPhonemes).invoke(); final boolean found = rulesApplication.isFound(); subBuilder = rulesApplication.getPhonemeBuilder(); @@ -344,7 +333,7 @@ public class PhoneticEngine { // the phonemes map orders the phonemes only based on their text, but ignores the language set // when adding new phonemes, check for equal phonemes and merge their language set, otherwise // phonemes with the same text but different language set get lost - for (final Rule.Phoneme newPhoneme : subBuilder.getPhonemes()) { + subBuilder.getPhonemes().forEach(newPhoneme -> { if (phonemes.containsKey(newPhoneme)) { final Rule.Phoneme oldPhoneme = phonemes.remove(newPhoneme); final Rule.Phoneme mergedPhoneme = oldPhoneme.mergeWithLanguage(newPhoneme.getLanguages()); @@ -352,8 +341,8 @@ public class PhoneticEngine { } else { phonemes.put(newPhoneme, newPhoneme); } - } - } + }); + }); return new PhonemeBuilder(phonemes.keySet()); } @@ -414,11 +403,10 @@ public class PhoneticEngine { // special-case handling of word prefixes based upon the name type switch (this.nameType) { case SEPHARDIC: - for (final String aWord : words) { + words.forEach(aWord -> { final String[] parts = aWord.split("'"); - final String lastPart = parts[parts.length - 1]; - words2.add(lastPart); - } + words2.add(parts[parts.length - 1]); + }); words2.removeAll(NAME_PREFIXES.get(this.nameType)); break; case ASHKENAZI: @@ -441,9 +429,7 @@ public class PhoneticEngine { } else { // encode each word in a multi-word name separately (normally used for approx matches) final StringBuilder result = new StringBuilder(); - for (final String word : words2) { - result.append("-").append(encode(word)); - } + words2.forEach(word -> result.append("-").append(encode(word))); // return the result without the leading "-" return result.substring(1); } 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 a37e7942..50e38603 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 @@ -214,13 +214,13 @@ public class Rule { final Map<String, Map<String, List<Rule>>> rs = new HashMap<>(); final Languages ls = Languages.getInstance(s); - for (final String l : ls.getLanguages()) { + ls.getLanguages().forEach(l -> { try (final Scanner scanner = createScanner(s, rt, l)) { rs.put(l, parseRules(scanner, createResourceName(s, rt, l))); } catch (final IllegalStateException e) { throw new IllegalStateException("Problem processing " + createResourceName(s, rt, l), e); } - } + }); if (!rt.equals(RuleType.RULES)) { try (final Scanner scanner = createScanner(s, rt, "common")) { rs.put("common", parseRules(scanner, createResourceName(s, rt, "common"))); @@ -288,9 +288,7 @@ public class Rule { final Languages.LanguageSet langs) { final Map<String, List<Rule>> ruleMap = getInstanceMap(nameType, rt, langs); final List<Rule> allRules = new ArrayList<>(); - for (final List<Rule> rules : ruleMap.values()) { - allRules.addAll(rules); - } + ruleMap.values().forEach(rules -> allRules.addAll(rules)); return allRules; }