You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/07/17 12:43:23 UTC
[commons-codec] 04/04: Use forEach()
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 <ga...@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;
}