Package org.languagetool.rules.patterns
Class PatternRule
- java.lang.Object
-
- org.languagetool.rules.Rule
-
- org.languagetool.rules.patterns.AbstractPatternRule
-
- org.languagetool.rules.patterns.PatternRule
-
- Direct Known Subclasses:
FalseFriendPatternRule
public class PatternRule extends AbstractPatternRule
A Rule that describes a language error as a simple pattern of words or of part-of-speech tags.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.Integer>
elementNo
private java.util.Set<java.lang.String>
inflectedRuleTokens
private boolean
interpretPosTagsPreDisambiguation
private boolean
isMemberOfDisjunctiveSet
private java.lang.String
shortMessage
private java.util.Set<java.lang.String>
simpleRuleTokens
private boolean
useList
-
Fields inherited from class org.languagetool.rules.patterns.AbstractPatternRule
antiPatterns, endPositionCorrection, filter, filterArgs, language, message, patternTokens, regex, regexMark, sentStart, sourceFile, startPositionCorrection, subId, suggestionMatches, suggestionMatchesOutMsg, suggestionsOutMsg, testUnification
-
-
Constructor Summary
Constructors Constructor Description PatternRule(java.lang.String id, Language language, java.util.List<PatternToken> patternTokens, java.lang.String description, java.lang.String message, java.lang.String shortMessage)
PatternRule(java.lang.String id, Language language, java.util.List<PatternToken> patternTokens, java.lang.String description, java.lang.String message, java.lang.String shortMessage, java.lang.String suggestionsOutMsg)
PatternRule(java.lang.String id, Language language, java.util.List<PatternToken> patternTokens, java.lang.String description, java.lang.String message, java.lang.String shortMessage, java.lang.String suggestionsOutMsg, boolean isMember)
PatternRule(java.lang.String id, Language language, java.util.List<PatternToken> patternTokens, java.lang.String description, java.lang.String message, java.lang.String shortMessage, java.lang.String suggestionsOutMsg, boolean isMember, boolean interpretPosTagsPreDisambiguation)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canBeIgnoredFor(AnalyzedSentence sentence)
A fast check whether this rule can be ignored for the given sentence because it can never match.int
estimateContextForSureMatch()
A number that estimates how many words there must be after a match before we can be (relatively) sure the match is valid.(package private) java.util.List<java.lang.Integer>
getElementNo()
private java.util.Set<java.lang.String>
getSet(boolean isInflected)
(package private) java.lang.String
getShortMessage()
(package private) boolean
isInterpretPosTagsPreDisambiguation()
Whether any POS tags from this rule should refer to the POS tags of the analyzed sentence *before* disambiguation.(package private) boolean
isWithComplexPhrase()
Used for testing rules: only one of the set can match.RuleMatch[]
match(AnalyzedSentence sentence)
Check whether the given sentence matches this error rule, i.e.(package private) void
notComplexPhrase()
Reset complex status - used for testing.java.lang.String
toPatternString()
Return the pattern as a string, using toString() on the pattern elements.java.lang.String
toXML()
Return the rule's definition as an XML string, loaded from the XML rule files.-
Methods inherited from class org.languagetool.rules.patterns.AbstractPatternRule
addSuggestionMatch, addSuggestionMatchOutMsg, getAntiPatterns, getDescription, getEndPositionCorrection, getFilter, getFilterArguments, getFullId, getId, getLanguage, getMessage, getPatternRuleId, getPatternTokens, getSourceFile, getStartPositionCorrection, getSubId, getSuggestionMatches, getSuggestionMatchesOutMsg, getSuggestionsOutMsg, isGetUnified, isGroupsOrUnification, isSentStart, isTestUnification, setAntiPatterns, setEndPositionCorrection, setFilter, setFilterArguments, setMessage, setSourceFile, setStartPositionCorrection, setSubId, supportsLanguage, toString
-
Methods inherited from class org.languagetool.rules.Rule
addExamplePair, 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
-
shortMessage
private final java.lang.String shortMessage
-
elementNo
private final java.util.List<java.lang.Integer> elementNo
-
simpleRuleTokens
private final java.util.Set<java.lang.String> simpleRuleTokens
-
inflectedRuleTokens
private final java.util.Set<java.lang.String> inflectedRuleTokens
-
useList
private final boolean useList
-
interpretPosTagsPreDisambiguation
private boolean interpretPosTagsPreDisambiguation
-
isMemberOfDisjunctiveSet
private boolean isMemberOfDisjunctiveSet
-
-
Constructor Detail
-
PatternRule
public PatternRule(java.lang.String id, Language language, java.util.List<PatternToken> patternTokens, java.lang.String description, java.lang.String message, java.lang.String shortMessage, java.lang.String suggestionsOutMsg)
- Parameters:
id
- Id of the Rule. Used in configuration. Should not contain special characters and should be stable over time, unless the rule changes completely.language
- Language of the Ruledescription
- Description to be shown (name)message
- Message to be displayed to the usershortMessage
- Message to be displayed to the user in the context menu in OpenOffice.org/LibreOffice
-
PatternRule
public PatternRule(java.lang.String id, Language language, java.util.List<PatternToken> patternTokens, java.lang.String description, java.lang.String message, java.lang.String shortMessage)
-
PatternRule
public PatternRule(java.lang.String id, Language language, java.util.List<PatternToken> patternTokens, java.lang.String description, java.lang.String message, java.lang.String shortMessage, java.lang.String suggestionsOutMsg, boolean isMember)
-
PatternRule
@Experimental public PatternRule(java.lang.String id, Language language, java.util.List<PatternToken> patternTokens, java.lang.String description, java.lang.String message, java.lang.String shortMessage, java.lang.String suggestionsOutMsg, boolean isMember, boolean interpretPosTagsPreDisambiguation)
- Since:
- 4.5
-
-
Method Detail
-
estimateContextForSureMatch
@Experimental public int estimateContextForSureMatch()
Description copied from class:Rule
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.- Overrides:
estimateContextForSureMatch
in classRule
-
isInterpretPosTagsPreDisambiguation
@Experimental boolean isInterpretPosTagsPreDisambiguation()
Whether any POS tags from this rule should refer to the POS tags of the analyzed sentence *before* disambiguation.- Since:
- 4.5
-
isWithComplexPhrase
final boolean isWithComplexPhrase()
Used for testing rules: only one of the set can match.- Returns:
- Whether the rule can non-match (as a member of disjunctive set of rules generated by phraseref in includephrases element).
-
notComplexPhrase
final void notComplexPhrase()
Reset complex status - used for testing.
-
toPatternString
public final java.lang.String toPatternString()
Return the pattern as a string, using toString() on the pattern elements.- Since:
- 0.9.2
-
toXML
public final java.lang.String toXML()
Return the rule's definition as an XML string, loaded from the XML rule files.- Since:
- 0.9.3
-
match
public final RuleMatch[] match(AnalyzedSentence sentence) throws java.io.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).- Overrides:
match
in classAbstractPatternRule
- Parameters:
sentence
- a pre-analyzed sentence- Returns:
- an array of
RuleMatch
objects - Throws:
java.io.IOException
-
canBeIgnoredFor
public boolean canBeIgnoredFor(AnalyzedSentence sentence)
A fast check whether this rule can be ignored for the given sentence because it can never match. Used internally for performance optimization.- Since:
- 2.4
-
getSet
private java.util.Set<java.lang.String> getSet(boolean isInflected)
-
getElementNo
java.util.List<java.lang.Integer> getElementNo()
-
getShortMessage
java.lang.String getShortMessage()
- Overrides:
getShortMessage
in classAbstractPatternRule
- Returns:
- String of short message as specified in <short>...</short>
-
-