|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.codec.language.bm.Rule
public class Rule
A phoneme rule.
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:
Nested Class Summary | |
---|---|
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. |
Field Summary | |
---|---|
static java.lang.String |
ALL
|
static Rule.RPattern |
ALL_STRINGS_RMATCHER
|
private static java.lang.String |
DOUBLE_QUOTE
|
private static java.lang.String |
HASH_INCLUDE
|
private Rule.RPattern |
lContext
|
private java.lang.String |
pattern
|
private Rule.PhonemeExpr |
phoneme
|
private Rule.RPattern |
rContext
|
private static java.util.Map<NameType,java.util.Map<RuleType,java.util.Map<java.lang.String,java.util.List<Rule>>>> |
RULES
|
Constructor Summary | |
---|---|
Rule(java.lang.String pattern,
java.lang.String lContext,
java.lang.String rContext,
Rule.PhonemeExpr phoneme)
Creates a new rule. |
Method Summary | |
---|---|
private static boolean |
contains(java.lang.CharSequence chars,
char input)
|
private static java.lang.String |
createResourceName(NameType nameType,
RuleType rt,
java.lang.String lang)
|
private static java.util.Scanner |
createScanner(NameType nameType,
RuleType rt,
java.lang.String lang)
|
private static java.util.Scanner |
createScanner(java.lang.String lang)
|
private static boolean |
endsWith(java.lang.CharSequence input,
java.lang.CharSequence suffix)
|
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. |
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. |
private static Rule.Phoneme |
parsePhoneme(java.lang.String ph)
|
private static Rule.PhonemeExpr |
parsePhonemeExpr(java.lang.String ph)
|
private static java.util.List<Rule> |
parseRules(java.util.Scanner scanner,
java.lang.String location)
|
private static Rule.RPattern |
pattern(java.lang.String regex)
Attempts to compile the regex into direct string ops, falling back to Pattern and Matcher in the worst case. |
boolean |
patternAndContextMatches(java.lang.CharSequence input,
int i)
Decides if the pattern and context match the input starting at a position. |
private static boolean |
startsWith(java.lang.CharSequence input,
java.lang.CharSequence prefix)
|
private static java.lang.String |
stripQuotes(java.lang.String str)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final Rule.RPattern ALL_STRINGS_RMATCHER
public static final java.lang.String ALL
private static final java.lang.String DOUBLE_QUOTE
private static final java.lang.String HASH_INCLUDE
private static final java.util.Map<NameType,java.util.Map<RuleType,java.util.Map<java.lang.String,java.util.List<Rule>>>> RULES
private final Rule.RPattern lContext
private final java.lang.String pattern
private final Rule.PhonemeExpr phoneme
private final Rule.RPattern rContext
Constructor Detail |
---|
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 phonemeMethod Detail |
---|
private static boolean contains(java.lang.CharSequence chars, char input)
private static java.lang.String createResourceName(NameType nameType, RuleType rt, java.lang.String lang)
private static java.util.Scanner createScanner(NameType nameType, RuleType rt, java.lang.String lang)
private static java.util.Scanner createScanner(java.lang.String lang)
private static boolean endsWith(java.lang.CharSequence input, java.lang.CharSequence suffix)
public 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 consider
public 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 consider
private static Rule.Phoneme parsePhoneme(java.lang.String ph)
private static Rule.PhonemeExpr parsePhonemeExpr(java.lang.String ph)
private static java.util.List<Rule> parseRules(java.util.Scanner scanner, java.lang.String location)
private static Rule.RPattern pattern(java.lang.String regex)
regex
- the regular expression to compile
private static boolean startsWith(java.lang.CharSequence input, java.lang.CharSequence prefix)
private static java.lang.String stripQuotes(java.lang.String str)
public 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 input
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |