Author: tn
Date: Sun Nov 17 21:14:50 2013
New Revision: 1542823
URL: http://svn.apache.org/r1542823
Log:
[CODEC-174] Fix Clirr error by renaming new Methods "Map Rule.getInstance(...)"
to "Map Rule.getInstanceMap(...)" and re-introducing the original methods with
the original signature "List Rule.getInstance(...)" and returning a joined
result of getInstanceMap.
Modified:
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Rule.java
Modified:
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
URL:
http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java?rev=1542823&r1=1542822&r2=1542823&view=diff
==============================================================================
---
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
(original)
+++
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
Sun Nov 17 21:14:50 2013
@@ -383,11 +383,11 @@ public class PhoneticEngine {
* of the input
*/
public String encode(String input, final Languages.LanguageSet
languageSet) {
- final Map<String, List<Rule>> rules = Rule.getInstance(this.nameType,
RuleType.RULES, languageSet);
+ final Map<String, List<Rule>> rules =
Rule.getInstanceMap(this.nameType, RuleType.RULES, languageSet);
// rules common across many (all) languages
- final Map<String, List<Rule>> finalRules1 =
Rule.getInstance(this.nameType, this.ruleType, "common");
+ final Map<String, List<Rule>> finalRules1 =
Rule.getInstanceMap(this.nameType, this.ruleType, "common");
// rules that apply to a specific language that may be ambiguous or
wrong if applied to other languages
- final Map<String, List<Rule>> finalRules2 =
Rule.getInstance(this.nameType, this.ruleType, languageSet);
+ final Map<String, List<Rule>> finalRules2 =
Rule.getInstanceMap(this.nameType, this.ruleType, languageSet);
// tidy the input
// lower case is a locale-dependent operation
Modified:
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Rule.java
URL:
http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Rule.java?rev=1542823&r1=1542822&r2=1542823&view=diff
==============================================================================
---
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Rule.java
(original)
+++
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Rule.java
Sun Nov 17 21:14:50 2013
@@ -32,6 +32,8 @@ import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.commons.codec.language.bm.Languages.LanguageSet;
+
/**
* A phoneme rule.
* <p>
@@ -273,10 +275,46 @@ public class Rule {
* the set of languages to consider
* @return a list of Rules that apply
*/
- public static Map<String, List<Rule>> getInstance(final NameType nameType,
final RuleType rt,
+ public static List<Rule> getInstance(final NameType nameType, final
RuleType rt,
final Languages.LanguageSet langs) {
- return langs.isSingleton() ? getInstance(nameType, rt, langs.getAny())
:
- getInstance(nameType, rt, Languages.ANY);
+ final Map<String, List<Rule>> ruleMap = getInstanceMap(nameType, rt,
langs);
+ final List<Rule> allRules = new ArrayList<Rule>();
+ for (final List<Rule> rules : ruleMap.values()) {
+ allRules.addAll(rules);
+ }
+ return allRules;
+ }
+
+ /**
+ * Gets rules for a combination of name type, rule type and a single
language.
+ *
+ * @param nameType
+ * the NameType to consider
+ * @param rt
+ * the RuleType to consider
+ * @param lang
+ * the language to consider
+ * @return a list of Rules that apply
+ */
+ public static List<Rule> getInstance(final NameType nameType, final
RuleType rt, final String lang) {
+ return getInstance(nameType, rt, LanguageSet.from(new
HashSet<String>(Arrays.asList(lang))));
+ }
+
+ /**
+ * Gets rules for a combination of name type, rule type and languages.
+ *
+ * @param nameType
+ * the NameType to consider
+ * @param rt
+ * the RuleType to consider
+ * @param langs
+ * the set of languages to consider
+ * @return a map containing all Rules that apply, grouped by the first
character of the rule pattern
+ */
+ public static Map<String, List<Rule>> getInstanceMap(final NameType
nameType, final RuleType rt,
+ final
Languages.LanguageSet langs) {
+ return langs.isSingleton() ? getInstanceMap(nameType, rt,
langs.getAny()) :
+ getInstanceMap(nameType, rt,
Languages.ANY);
}
/**
@@ -288,9 +326,10 @@ public class Rule {
* the RuleType to consider
* @param lang
* the language to consider
- * @return a list rules for a combination of name type, rule type and a
single language.
+ * @return a map containing all Rules that apply, grouped by the first
character of the rule pattern
*/
- public static Map<String, List<Rule>> getInstance(final NameType nameType,
final RuleType rt, final String lang) {
+ public static Map<String, List<Rule>> getInstanceMap(final NameType
nameType, final RuleType rt,
+ final String lang) {
final Map<String, List<Rule>> rules =
RULES.get(nameType).get(rt).get(lang);
if (rules == null) {