public class Rule
extends java.lang.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.RPattern
A minimal wrapper around the functionality of Pattern that we use, to allow for alternate implementations.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ALL |
static Rule.RPattern |
ALL_STRINGS_RMATCHER |
Constructor and Description |
---|
Rule(java.lang.String pattern,
java.lang.String lContext,
java.lang.String rContext,
Rule.PhonemeExpr phoneme)
Creates a new rule.
|
Modifier and Type | Method and Description |
---|---|
static java.util.List<Rule> |
getInstance(NameType nameType,
RuleType rt,
Languages.LanguageSet langs)
Gets rules for a combination of name type, rule type and languages.
|
static java.util.List<Rule> |
getInstance(NameType nameType,
RuleType rt,
java.lang.String lang)
Gets rules for a combination of name type, rule type and a single language.
|
static java.util.Map<java.lang.String,java.util.List<Rule>> |
getInstanceMap(NameType nameType,
RuleType rt,
Languages.LanguageSet langs)
Gets rules for a combination of name type, rule type and languages.
|
static java.util.Map<java.lang.String,java.util.List<Rule>> |
getInstanceMap(NameType nameType,
RuleType rt,
java.lang.String lang)
Gets rules for a combination of name type, rule type and a single language.
|
Rule.RPattern |
getLContext()
Gets the left context.
|
java.lang.String |
getPattern()
Gets the pattern.
|
Rule.PhonemeExpr |
getPhoneme()
Gets the phoneme.
|
Rule.RPattern |
getRContext()
Gets the right context.
|
boolean |
patternAndContextMatches(java.lang.CharSequence input,
int i)
Decides if the pattern and context match the input starting at a position.
|
public static final Rule.RPattern ALL_STRINGS_RMATCHER
public static final java.lang.String ALL
public Rule(java.lang.String pattern, java.lang.String lContext, java.lang.String rContext, Rule.PhonemeExpr phoneme)
pattern
- the patternlContext
- the left contextrContext
- the right contextphoneme
- the resulting phonemepublic static java.util.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 java.util.List<Rule> getInstance(NameType nameType, RuleType rt, java.lang.String lang)
nameType
- the NameType to considerrt
- the RuleType to considerlang
- the language to considerpublic static java.util.Map<java.lang.String,java.util.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 java.util.Map<java.lang.String,java.util.List<Rule>> getInstanceMap(NameType nameType, RuleType rt, java.lang.String lang)
nameType
- the NameType to considerrt
- the RuleType to considerlang
- the language to considerpublic Rule.RPattern getLContext()
public java.lang.String getPattern()
public Rule.PhonemeExpr getPhoneme()
public Rule.RPattern getRContext()
public boolean patternAndContextMatches(java.lang.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 inputCopyright © 2010 - 2020 Adobe. All Rights Reserved