Package org.languagetool.rules
Class AbstractSimpleReplaceRule2
- java.lang.Object
-
- org.languagetool.rules.Rule
-
- org.languagetool.rules.AbstractSimpleReplaceRule2
-
public abstract class AbstractSimpleReplaceRule2 extends Rule
A rule that matches words which should not be used and suggests correct ones instead.Unlike AbstractSimpleReplaceRule, it supports phrases (Ex: "aqua forte" -> "acvaforte"). Note: Merge this into
AbstractSimpleReplaceRule
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
AbstractSimpleReplaceRule2.PathAndLanguage
-
Field Summary
Fields Modifier and Type Field Description private static com.google.common.cache.LoadingCache<AbstractSimpleReplaceRule2.PathAndLanguage,java.util.List<java.util.Map<java.lang.String,java.lang.String>>>
cache
private Language
language
-
Constructor Summary
Constructors Constructor Description AbstractSimpleReplaceRule2(java.util.ResourceBundle messages, Language language)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private void
addToQueue(AnalyzedTokenReadings token, java.util.Queue<AnalyzedTokenReadings> prevTokens)
abstract java.lang.String
getDescription()
A short description of the error this rule can detect, usually in the language of the text that is checked.abstract java.lang.String
getFileName()
abstract java.lang.String
getId()
A string used to identify the rule in e.g.abstract java.util.Locale
getLocale()
locale used on case-conversionabstract java.lang.String
getShort()
abstract java.lang.String
getSuggestion()
abstract java.lang.String
getSuggestionsSeparator()
java.util.List<java.util.Map<java.lang.String,java.lang.String>>
getWrongWords()
boolean
isCaseSensitive()
use case-sensitive matching.protected boolean
isException(java.lang.String matchedText)
private static java.util.List<java.util.Map<java.lang.String,java.lang.String>>
loadWords(java.lang.String filename, Language lang, boolean caseSensitive)
Load the list of words.RuleMatch[]
match(AnalyzedSentence sentence)
Check whether the given sentence matches this error rule, i.e.-
Methods inherited from class org.languagetool.rules.Rule
addExamplePair, estimateContextForSureMatch, getAntiPatterns, getCategory, getConfigureText, getCorrectExamples, getDefaultValue, getErrorTriggeringExamples, getIncorrectExamples, getLocQualityIssueType, getMaxConfigurableValue, getMinConfigurableValue, getSentenceWithImmunization, getUrl, hasConfigurableValue, isDefaultOff, isDefaultTempOff, isDictionaryBasedSpellingRule, isOfficeDefaultOff, isOfficeDefaultOn, makeAntiPatterns, setCategory, setCorrectExamples, setDefaultOff, setDefaultOn, setDefaultTempOff, setErrorTriggeringExamples, setIncorrectExamples, setLocQualityIssueType, setOfficeDefaultOff, setOfficeDefaultOn, setUrl, supportsLanguage, toRuleMatchArray, useInOffice
-
-
-
-
Field Detail
-
language
private final Language language
-
cache
private static final com.google.common.cache.LoadingCache<AbstractSimpleReplaceRule2.PathAndLanguage,java.util.List<java.util.Map<java.lang.String,java.lang.String>>> cache
-
-
Constructor Detail
-
AbstractSimpleReplaceRule2
public AbstractSimpleReplaceRule2(java.util.ResourceBundle messages, Language language)
-
-
Method Detail
-
getFileName
public abstract java.lang.String getFileName()
-
getId
public abstract java.lang.String getId()
Description copied from class:Rule
A string used to identify the rule in e.g. configuration files. This string is supposed to be unique and to stay the same in all upcoming versions of LanguageTool. It's supposed to contain only the charactersA-Z
and the underscore.
-
getDescription
public abstract java.lang.String getDescription()
Description copied from class:Rule
A short description of the error this rule can detect, usually in the language of the text that is checked.- Specified by:
getDescription
in classRule
-
getShort
public abstract java.lang.String getShort()
-
getSuggestion
public abstract java.lang.String getSuggestion()
- Returns:
- A string where
$match
will be replaced with the matching word and$suggestions
will be replaced with the alternatives. This is the string shown to the user.
-
getSuggestionsSeparator
public abstract java.lang.String getSuggestionsSeparator()
- Returns:
- the word used to separate multiple suggestions; used only before last suggestion, the rest are comma-separated.
-
getLocale
public abstract java.util.Locale getLocale()
locale used on case-conversion
-
isCaseSensitive
public boolean isCaseSensitive()
use case-sensitive matching.
-
getWrongWords
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getWrongWords()
- Returns:
- the list of wrong words for which this rule can suggest correction. The list cannot be modified.
-
loadWords
private static java.util.List<java.util.Map<java.lang.String,java.lang.String>> loadWords(java.lang.String filename, Language lang, boolean caseSensitive) throws java.io.IOException
Load the list of words. Same asAbstractSimpleReplaceRule.loadFromPath(java.lang.String)
but allows multiple words.- Parameters:
filename
- the file from classpath to load- Returns:
- the list of maps containing the error-corrections pairs. The n-th map contains key strings of (n+1) words.
- Throws:
java.io.IOException
-
addToQueue
private void addToQueue(AnalyzedTokenReadings token, java.util.Queue<AnalyzedTokenReadings> prevTokens)
-
match
public RuleMatch[] match(AnalyzedSentence sentence)
Description copied from class:Rule
Check whether the given sentence matches this error rule, i.e. whether it contains the error detected by this rule. Note that the order in which this method is called is not always guaranteed, i.e. the sentence order in the text may be different than the order in which you get the sentences (this may be the case when LanguageTool is used as a LibreOffice/OpenOffice add-on, for example).
-
isException
protected boolean isException(java.lang.String matchedText)
-
-