public class Rule extends Object
Rules have a pattern, left context, right context, output phoneme, set of languages for which they apply and a logical flag indicating if all languages must be in play. A rule matches if:
Rules are typically generated by parsing rules resources. In normal use, there will be no need for the user to explicitly construct their own.
Rules are immutable and thread-safe.
Rules resources
Rules are typically loaded from resource files. These are UTF-8 encoded text files. They are systematically named following the pattern:
org/apache/commons/codec/language/bm/${NameType#getName}_${RuleType#getName}_${language}.txt
The format of these resources is the following:
| Modifier and Type | Class and Description | 
|---|---|
| static class  | Rule.Phoneme | 
| static interface  | Rule.PhonemeExpr | 
| static class  | Rule.PhonemeList | 
| static interface  | Rule.RPatternA minimal wrapper around the functionality of Pattern that we use, to allow for alternate implementations. | 
| Modifier and Type | Field and Description | 
|---|---|
| static String | ALL | 
| static Rule.RPattern | ALL_STRINGS_RMATCHER | 
| Constructor and Description | 
|---|
| Rule(String pattern,
    String lContext,
    String rContext,
    Rule.PhonemeExpr phoneme)Creates a new rule. | 
| Modifier and Type | Method and Description | 
|---|---|
| static List<Rule> | getInstance(NameType nameType,
           RuleType rt,
           Languages.LanguageSet langs)Gets rules for a combination of name type, rule type and languages. | 
| static List<Rule> | getInstance(NameType nameType,
           RuleType rt,
           String lang)Gets rules for a combination of name type, rule type and a single language. | 
| static Map<String,List<Rule>> | getInstanceMap(NameType nameType,
              RuleType rt,
              Languages.LanguageSet langs)Gets rules for a combination of name type, rule type and languages. | 
| static Map<String,List<Rule>> | getInstanceMap(NameType nameType,
              RuleType rt,
              String lang)Gets rules for a combination of name type, rule type and a single language. | 
| Rule.RPattern | getLContext()Gets the left context. | 
| String | getPattern()Gets the pattern. | 
| Rule.PhonemeExpr | getPhoneme()Gets the phoneme. | 
| Rule.RPattern | getRContext()Gets the right context. | 
| boolean | patternAndContextMatches(CharSequence input,
                        int i)Decides if the pattern and context match the input starting at a position. | 
public static final String ALL
public static final Rule.RPattern ALL_STRINGS_RMATCHER
public Rule(String pattern, String lContext, String rContext, Rule.PhonemeExpr phoneme)
pattern - the patternlContext - the left contextrContext - the right contextphoneme - the resulting phonemepublic static List<Rule> getInstance(NameType nameType, RuleType rt, Languages.LanguageSet langs)
nameType - the NameType to considerrt - the RuleType to considerlangs - the set of languages to considerpublic static List<Rule> getInstance(NameType nameType, RuleType rt, String lang)
nameType - the NameType to considerrt - the RuleType to considerlang - the language to considerpublic static Map<String,List<Rule>> getInstanceMap(NameType nameType, RuleType rt, Languages.LanguageSet langs)
nameType - the NameType to considerrt - the RuleType to considerlangs - the set of languages to considerpublic static Map<String,List<Rule>> getInstanceMap(NameType nameType, RuleType rt, String lang)
nameType - the NameType to considerrt - the RuleType to considerlang - the language to considerpublic Rule.RPattern getLContext()
public String getPattern()
public Rule.PhonemeExpr getPhoneme()
public Rule.RPattern getRContext()
public boolean patternAndContextMatches(CharSequence input, int i)
lContext matches input up to i, pattern matches at i and
 rContext matches from the end of the match of pattern to the end of input.input - the input Stringi - the int position within the input