Package org.languagetool.rules.patterns
Class AbstractPatternRule
- java.lang.Object
-
- org.languagetool.rules.Rule
-
- org.languagetool.rules.patterns.AbstractPatternRule
-
- Direct Known Subclasses:
DisambiguationPatternRule
,PatternRule
,RegexPatternRule
public abstract class AbstractPatternRule extends Rule
An Abstract Pattern Rule that describes a pattern of words or part-of-speech tags used for PatternRule and DisambiguationPatternRule. Introduced to minimize code duplication between those classes.- Author:
- Marcin MiĆkowski
-
-
Field Summary
Fields Modifier and Type Field Description protected List<DisambiguationPatternRule>
antiPatterns
protected int
endPositionCorrection
protected RuleFilter
filter
protected String
filterArgs
protected Language
language
protected String
message
protected List<PatternToken>
patternTokens
protected Pattern
regex
protected int
regexMark
protected boolean
sentStart
protected String
sourceFile
protected int
startPositionCorrection
protected String
subId
protected List<Match>
suggestionMatches
protected List<Match>
suggestionMatchesOutMsg
protected String
suggestionsOutMsg
protected boolean
testUnification
-
Constructor Summary
Constructors Constructor Description AbstractPatternRule(String id, String description, Language language, List<PatternToken> patternTokens, boolean getUnified)
AbstractPatternRule(String id, String description, Language language, List<PatternToken> patternTokens, boolean getUnified, String message)
AbstractPatternRule(String id, String description, Language language, Pattern regex, int regexMark)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addSuggestionMatch(Match m)
Add formatted suggestion elements.void
addSuggestionMatchOutMsg(Match m)
Add formatted suggestion elements outside message.List<DisambiguationPatternRule>
getAntiPatterns()
Overwrite this to avoid false alarms by ignoring these patterns - note that yourRule.match(AnalyzedSentence)
method needs to callRule.getSentenceWithImmunization(org.languagetool.AnalyzedSentence)
for this to be used and you need to checkAnalyzedTokenReadings.isImmunized()
String
getDescription()
A short description of the error this rule can detect, usually in the language of the text that is checked.int
getEndPositionCorrection()
@Nullable RuleFilter
getFilter()
@Nullable String
getFilterArguments()
String
getFullId()
The rule id and its sub id, if any.String
getId()
A string used to identify the rule in e.g.Language
getLanguage()
String
getMessage()
Get the message shown to the user if this rule matches.PatternRuleId
getPatternRuleId()
The rule id and its sub id, if any.List<PatternToken>
getPatternTokens()
@Nullable String
getSourceFile()
int
getStartPositionCorrection()
String
getSubId()
@NotNull String
getSuggestionsOutMsg()
boolean
isGetUnified()
boolean
isGroupsOrUnification()
boolean
isSentStart()
boolean
isTestUnification()
RuleMatch[]
match(AnalyzedSentence sentence)
Check whether the given sentence matches this error rule, i.e.void
setAntiPatterns(List<DisambiguationPatternRule> antiPatterns)
Set up the list of antipatterns used to immunize tokens, i.e., make them non-matchable by the current rule.void
setEndPositionCorrection(int endPositionCorrection)
void
setFilter(RuleFilter filter)
void
setFilterArguments(String filterArgs)
void
setMessage(String message)
Set the message shown to the user if this rule matches.void
setStartPositionCorrection(int startPositionCorrection)
void
setSubId(String subId)
boolean
supportsLanguage(Language language)
Whether this rule can be used for text in the given language.String
toString()
-
Methods inherited from class org.languagetool.rules.Rule
addExamplePair, estimateContextForSureMatch, 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, toRuleMatchArray, useInOffice
-
-
-
-
Field Detail
-
language
protected final Language language
-
patternTokens
protected final List<PatternToken> patternTokens
-
regex
protected final Pattern regex
-
regexMark
protected final int regexMark
-
testUnification
protected final boolean testUnification
-
sentStart
protected final boolean sentStart
-
antiPatterns
protected final List<DisambiguationPatternRule> antiPatterns
-
subId
protected String subId
-
startPositionCorrection
protected int startPositionCorrection
-
endPositionCorrection
protected int endPositionCorrection
-
suggestionsOutMsg
protected String suggestionsOutMsg
-
filter
protected RuleFilter filter
-
filterArgs
protected String filterArgs
-
message
protected String message
-
sourceFile
protected String sourceFile
-
-
Constructor Detail
-
AbstractPatternRule
public AbstractPatternRule(String id, String description, Language language, Pattern regex, int regexMark)
- Since:
- 3.2
-
AbstractPatternRule
public AbstractPatternRule(String id, String description, Language language, List<PatternToken> patternTokens, boolean getUnified, String message)
-
AbstractPatternRule
public AbstractPatternRule(String id, String description, Language language, List<PatternToken> patternTokens, boolean getUnified)
-
-
Method Detail
-
supportsLanguage
public boolean supportsLanguage(Language language)
Description copied from class:Rule
Whether this rule can be used for text in the given language. Since LanguageTool 2.6, this also worksPatternRule
s (before, it used to always returnfalse
for those).- Overrides:
supportsLanguage
in classRule
-
getDescription
public 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
-
getSourceFile
@Nullable public @Nullable String getSourceFile()
-
getId
public 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.- Specified by:
getId
in classRule
- See Also:
getFullId()
-
match
public RuleMatch[] match(AnalyzedSentence sentence) throws IOException
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).- Specified by:
match
in classRule
- Parameters:
sentence
- a pre-analyzed sentence- Returns:
- an array of
RuleMatch
objects - Throws:
IOException
-
getLanguage
public final Language getLanguage()
- Since:
- 2.3
-
setStartPositionCorrection
public final void setStartPositionCorrection(int startPositionCorrection)
-
getStartPositionCorrection
public final int getStartPositionCorrection()
-
setEndPositionCorrection
public final void setEndPositionCorrection(int endPositionCorrection)
-
getEndPositionCorrection
public final int getEndPositionCorrection()
-
getFullId
public String getFullId()
The rule id and its sub id, if any. The format is likeRULE_ID[SUB_ID]
, e.g.WANT_TO[2]
.- Since:
- 3.2
- See Also:
getId()
-
getPatternRuleId
public PatternRuleId getPatternRuleId()
The rule id and its sub id, if any.- Since:
- 3.2
-
getSubId
public final String getSubId()
-
setSubId
public final void setSubId(String subId)
-
isGroupsOrUnification
public boolean isGroupsOrUnification()
- Since:
- 2.3
-
isGetUnified
public boolean isGetUnified()
- Since:
- 2.3
-
isSentStart
public boolean isSentStart()
- Since:
- 2.3
-
isTestUnification
public boolean isTestUnification()
- Since:
- 2.3
-
getPatternTokens
public List<PatternToken> getPatternTokens()
- Since:
- 2.3
-
addSuggestionMatch
public final void addSuggestionMatch(Match m)
Add formatted suggestion elements.
-
addSuggestionMatchOutMsg
public final void addSuggestionMatchOutMsg(Match m)
Add formatted suggestion elements outside message.
-
getSuggestionsOutMsg
@NotNull public final @NotNull String getSuggestionsOutMsg()
-
getMessage
public final String getMessage()
Get the message shown to the user if this rule matches.
-
setMessage
public final void setMessage(String message)
Set the message shown to the user if this rule matches.
-
setFilter
public void setFilter(RuleFilter filter)
- Since:
- 2.7 (public since 3.2)
-
getFilter
@Nullable public @Nullable RuleFilter getFilter()
- Since:
- 2.7 (public since 3.2)
-
setFilterArguments
public void setFilterArguments(String filterArgs)
- Since:
- 2.7 (public since 3.2)
-
getFilterArguments
@Nullable public @Nullable String getFilterArguments()
- Since:
- 2.7 (public since 3.2)
-
setAntiPatterns
public void setAntiPatterns(List<DisambiguationPatternRule> antiPatterns)
Set up the list of antipatterns used to immunize tokens, i.e., make them non-matchable by the current rule. Useful for multi-word complex exceptions, such as multi-word idiomatic expressions.- Parameters:
antiPatterns
- A list of antiPatterns, implemented asDisambiguationPatternRule
.- Since:
- 2.5
-
getAntiPatterns
public final List<DisambiguationPatternRule> getAntiPatterns()
Description copied from class:Rule
Overwrite this to avoid false alarms by ignoring these patterns - note that yourRule.match(AnalyzedSentence)
method needs to callRule.getSentenceWithImmunization(org.languagetool.AnalyzedSentence)
for this to be used and you need to checkAnalyzedTokenReadings.isImmunized()
- Overrides:
getAntiPatterns
in classRule
- Since:
- 3.1
-
-