Package org.languagetool.rules
Class Rule
java.lang.Object
org.languagetool.rules.Rule
- Direct Known Subclasses:
AbstractCompoundRule
,AbstractDashRule
,AbstractPatternRule
,AbstractPunctuationCheckRule
,AbstractSimpleReplaceRule
,AbstractSimpleReplaceRule2
,AbstractSpaceBeforeRule
,AbstractUnitConversionRule
,AdvancedWordRepeatRule
,BitextRule
,CommaWhitespaceRule
,ConfusionProbabilityRule
,DemoRule
,DoublePunctuationRule
,LongSentenceRule
,NeuralNetworkRule
,NgramProbabilityRule
,OpenNMTRule
,RuleFilter.FakeRule
,SpellingCheckRule
,TextLevelRule
,WhiteSpaceAtBeginOfParagraph
,WhitespaceBeforePunctuationRule
,WordRepeatRule
,WrongWordInContextRule
Abstract rule class. A Rule describes a language error and can test whether a
given pre-analyzed text contains that error using the
match(AnalyzedSentence)
method.
Rules are created whenever a JLanguageTool
or
a MultiThreadedJLanguageTool
object is created.
As these objects are not thread-safe, this can happen often. Rules should thus
make sure that their initialization works fast. For example, if a rule needs
to load data from disk, it should store it in a static variable to make sure
the loading happens only once.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Category
private List
<CorrectExample> private boolean
private boolean
private List
<ErrorTriggeringExample> private List
<IncorrectExample> private ITSIssueType
protected final ResourceBundle
private boolean
private boolean
private URL
-
Constructor Summary
ConstructorsConstructorDescriptionRule()
Rule
(ResourceBundle messages) Called by rules that require a translation of their messages. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addExamplePair
(IncorrectExample incorrectSentence, CorrectExample correctSentence) Convenience method to add a pair of sentences: an incorrect sentence and the same sentence with the error corrected.int
A number that estimates how many words there must be after a match before we can be (relatively) sure the match is valid.Overwrite this to avoid false alarms by ignoring these patterns - note that yourmatch(AnalyzedSentence)
method needs to callgetSentenceWithImmunization(org.languagetool.AnalyzedSentence)
for this to be used and you need to checkAnalyzedTokenReadings.isImmunized()
final Category
Overwrite this to define the Text in the option panel for the configurable valuefinal List
<CorrectExample> Get example sentences that are correct and thus will not match this rule.int
Overwrite this to get a default Integer value by option panelabstract String
A short description of the error this rule can detect, usually in the language of the text that is checked.final List
<ErrorTriggeringExample> Get the examples that are correct but still trigger the rule due to an issue with the rule.abstract String
getId()
A string used to identify the rule in e.g.final List
<IncorrectExample> Get example sentences that are incorrect and thus will match this rule.Returns the Localization Quality Issue Type, as defined at http://www.w3.org/International/multilingualweb/lt/drafts/its20/its20.html#lqissue-typevalues.int
Overwrite this to define the maximum of a configurable valueint
Overwrite this to define the minimum of a configurable valueprotected AnalyzedSentence
getSentenceWithImmunization
(AnalyzedSentence sentence) To be called frommatch(AnalyzedSentence)
for rules that wantgetAntiPatterns()
to be considered.@Nullable URL
getUrl()
An optional URL describing the rule match in more detail.boolean
Overwrite this to return true, if a value may be configured by option panelfinal boolean
Checks whether the rule has been turned off by default by the rule author.final boolean
Checks whether the rule has been turned off using "default='temp_off'" by default by the rule author.boolean
Whether this is a spelling rule that uses a dictionary.final boolean
Checks whether the rule has been turned off by default for Office Extension by the rule author.final boolean
Checks whether the rule has been turned on by default for Office Extension by the rule author.protected List
<DisambiguationPatternRule> makeAntiPatterns
(List<List<PatternToken>> patternList, Language language) Helper for implementinggetAntiPatterns()
.abstract RuleMatch[]
match
(AnalyzedSentence sentence) Check whether the given sentence matches this error rule, i.e.final void
setCategory
(Category category) final void
setCorrectExamples
(List<CorrectExample> correctExamples) Set the examples that are correct and thus do not trigger the rule.final void
Turns the rule off by default.final void
Turns the rule on by default.final void
Turns the pattern rule off by default, expect for internal regression tests.final void
setErrorTriggeringExamples
(List<ErrorTriggeringExample> examples) Set the examples that are correct but still trigger the rule due to an issue with the rule.final void
setIncorrectExamples
(List<IncorrectExample> incorrectExamples) Set the examples that are incorrect and thus do trigger the rule.void
setLocQualityIssueType
(ITSIssueType locQualityIssueType) Set the Localization Quality Issue Type.final void
Turns the rule off for Office Extension by default.final void
Turns the rule on for Office Extension by default.void
boolean
supportsLanguage
(Language language) Whether this rule can be used for text in the given language.protected final RuleMatch[]
toRuleMatchArray
(List<RuleMatch> ruleMatches) boolean
Whether this rule should be forced to be used in LO/OO extension.
-
Field Details
-
messages
-
correctExamples
-
incorrectExamples
-
errorTriggeringExamples
-
locQualityIssueType
-
category
-
url
-
defaultOff
private boolean defaultOff -
defaultTempOff
private boolean defaultTempOff -
officeDefaultOn
private boolean officeDefaultOn -
officeDefaultOff
private boolean officeDefaultOff
-
-
Constructor Details
-
Rule
public Rule() -
Rule
Called by rules that require a translation of their messages.
-
-
Method Details
-
getId
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
A short description of the error this rule can detect, usually in the language of the text that is checked. -
match
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).- Parameters:
sentence
- a pre-analyzed sentence- Returns:
- an array of
RuleMatch
objects - Throws:
IOException
-
estimateContextForSureMatch
A number that estimates how many words there must be after a match before we can be (relatively) sure the match is valid. This is useful for check-as-you-type, where a match might occur and the word that gets typed next makes the match disappear (something one would obviously like to avoid). Note: this may over-estimate the real context size. Returns-1
when the sentence needs to end to be sure there's a match.- Since:
- 4.5
-
getAntiPatterns
Overwrite this to avoid false alarms by ignoring these patterns - note that yourmatch(AnalyzedSentence)
method needs to callgetSentenceWithImmunization(org.languagetool.AnalyzedSentence)
for this to be used and you need to checkAnalyzedTokenReadings.isImmunized()
- Since:
- 3.1
-
hasConfigurableValue
public boolean hasConfigurableValue()Overwrite this to return true, if a value may be configured by option panel- Since:
- 4.2
-
getDefaultValue
public int getDefaultValue()Overwrite this to get a default Integer value by option panel- Since:
- 4.1
-
getMinConfigurableValue
public int getMinConfigurableValue()Overwrite this to define the minimum of a configurable value- Since:
- 4.2
-
getMaxConfigurableValue
public int getMaxConfigurableValue()Overwrite this to define the maximum of a configurable value- Since:
- 4.2
-
getConfigureText
Overwrite this to define the Text in the option panel for the configurable value- Since:
- 4.2
-
getSentenceWithImmunization
To be called frommatch(AnalyzedSentence)
for rules that wantgetAntiPatterns()
to be considered.- Since:
- 3.1
-
makeAntiPatterns
protected List<DisambiguationPatternRule> makeAntiPatterns(List<List<PatternToken>> patternList, Language language) Helper for implementinggetAntiPatterns()
.- Since:
- 3.1
-
supportsLanguage
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). -
isDictionaryBasedSpellingRule
public boolean isDictionaryBasedSpellingRule()Whether this is a spelling rule that uses a dictionary. Rules that returntrue
here are basically rules that work like a simple hunspell-like spellchecker: they check words without considering the words' context.- Since:
- 2.5
-
useInOffice
public boolean useInOffice()Whether this rule should be forced to be used in LO/OO extension. Rules that returntrue
will be enabled always in LO/OO extension regardless of other options like isDictionaryBasedSpellingRule().- Since:
- 2.6
-
setCorrectExamples
Set the examples that are correct and thus do not trigger the rule. -
getCorrectExamples
Get example sentences that are correct and thus will not match this rule. -
setIncorrectExamples
Set the examples that are incorrect and thus do trigger the rule. -
getIncorrectExamples
Get example sentences that are incorrect and thus will match this rule. -
setErrorTriggeringExamples
Set the examples that are correct but still trigger the rule due to an issue with the rule.- Since:
- 3.5
-
getErrorTriggeringExamples
Get the examples that are correct but still trigger the rule due to an issue with the rule.- Since:
- 3.5
-
getCategory
- Returns:
- a category (never null since LT 3.4)
-
setCategory
-
toRuleMatchArray
-
isDefaultOff
public final boolean isDefaultOff()Checks whether the rule has been turned off by default by the rule author.- Returns:
- True if the rule is turned off by default.
-
isDefaultTempOff
public final boolean isDefaultTempOff()Checks whether the rule has been turned off using "default='temp_off'" by default by the rule author. This is a special case where the rule is off for users but active for nightly regression checks. -
setDefaultOff
public final void setDefaultOff()Turns the rule off by default. -
setDefaultTempOff
public final void setDefaultTempOff()Turns the pattern rule off by default, expect for internal regression tests. -
setDefaultOn
public final void setDefaultOn()Turns the rule on by default. -
isOfficeDefaultOff
public final boolean isOfficeDefaultOff()Checks whether the rule has been turned off by default for Office Extension by the rule author.- Returns:
- True if the rule is turned off. Overrides the default for LO/OO.
- Since:
- 4.0
-
isOfficeDefaultOn
public final boolean isOfficeDefaultOn()Checks whether the rule has been turned on by default for Office Extension by the rule author.- Returns:
- True if the rule is turned on. Overrides the default for LO/OO.
- Since:
- 4.0
-
setOfficeDefaultOff
public final void setOfficeDefaultOff()Turns the rule off for Office Extension by default.- Since:
- 4.0
-
setOfficeDefaultOn
public final void setOfficeDefaultOn()Turns the rule on for Office Extension by default.- Since:
- 4.0
-
getUrl
An optional URL describing the rule match in more detail. Typically points to a dictionary or grammar website with explanations and examples. Will returnnull
for rules that have no URL.- Since:
- 1.8
-
setUrl
- Since:
- 1.8
- See Also:
-
getLocQualityIssueType
Returns the Localization Quality Issue Type, as defined at http://www.w3.org/International/multilingualweb/lt/drafts/its20/its20.html#lqissue-typevalues.Note that not all languages nor all rules actually map yet to a type yet. In those cases, uncategorized is returned.
- Returns:
- the Localization Quality Issue Type - uncategorized if no type has been assigned
- Since:
- 2.5
-
setLocQualityIssueType
Set the Localization Quality Issue Type.- Since:
- 2.5
- See Also:
-
addExamplePair
Convenience method to add a pair of sentences: an incorrect sentence and the same sentence with the error corrected.- Since:
- 2.5
-