Class Rule

    • Field Detail

      • messages

        protected final java.util.ResourceBundle messages
      • correctExamples

        private java.util.List<CorrectExample> correctExamples
      • locQualityIssueType

        private ITSIssueType locQualityIssueType
      • url

        private java.net.URL url
      • defaultOff

        private boolean defaultOff
      • defaultTempOff

        private boolean defaultTempOff
      • officeDefaultOn

        private boolean officeDefaultOn
      • officeDefaultOff

        private boolean officeDefaultOff
    • Constructor Detail

      • Rule

        public Rule()
      • Rule

        public Rule​(java.util.ResourceBundle messages)
        Called by rules that require a translation of their messages.
    • Method Detail

      • getId

        public abstract java.lang.String 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 characters A-Z and the underscore.
      • getDescription

        public 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.
      • match

        public abstract RuleMatch[] match​(AnalyzedSentence sentence)
                                   throws java.io.IOException
        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:
        java.io.IOException
      • estimateContextForSureMatch

        @Experimental
        public 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. 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
      • 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

        public java.lang.String getConfigureText()
        Overwrite this to define the Text in the option panel for the configurable value
        Since:
        4.2
      • supportsLanguage

        public boolean supportsLanguage​(Language language)
        Whether this rule can be used for text in the given language. Since LanguageTool 2.6, this also works PatternRules (before, it used to always return false for those).
      • isDictionaryBasedSpellingRule

        public boolean isDictionaryBasedSpellingRule()
        Whether this is a spelling rule that uses a dictionary. Rules that return true 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 return true will be enabled always in LO/OO extension regardless of other options like isDictionaryBasedSpellingRule().
        Since:
        2.6
      • setCorrectExamples

        public final void setCorrectExamples​(java.util.List<CorrectExample> correctExamples)
        Set the examples that are correct and thus do not trigger the rule.
      • getCorrectExamples

        public final java.util.List<CorrectExample> getCorrectExamples()
        Get example sentences that are correct and thus will not match this rule.
      • setIncorrectExamples

        public final void setIncorrectExamples​(java.util.List<IncorrectExample> incorrectExamples)
        Set the examples that are incorrect and thus do trigger the rule.
      • getIncorrectExamples

        public final java.util.List<IncorrectExample> getIncorrectExamples()
        Get example sentences that are incorrect and thus will match this rule.
      • setErrorTriggeringExamples

        public final void setErrorTriggeringExamples​(java.util.List<ErrorTriggeringExample> examples)
        Set the examples that are correct but still trigger the rule due to an issue with the rule.
        Since:
        3.5
      • getErrorTriggeringExamples

        public final java.util.List<ErrorTriggeringExample> getErrorTriggeringExamples()
        Get the examples that are correct but still trigger the rule due to an issue with the rule.
        Since:
        3.5
      • getCategory

        public final Category getCategory()
        Returns:
        a category (never null since LT 3.4)
      • setCategory

        public final void setCategory​(Category category)
      • toRuleMatchArray

        protected final RuleMatch[] toRuleMatchArray​(java.util.List<RuleMatch> ruleMatches)
      • 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

        @Nullable
        public @Nullable java.net.URL getUrl()
        An optional URL describing the rule match in more detail. Typically points to a dictionary or grammar website with explanations and examples. Will return null for rules that have no URL.
        Since:
        1.8
      • setUrl

        public void setUrl​(java.net.URL url)
        Since:
        1.8
        See Also:
        getUrl()
      • setLocQualityIssueType

        public void setLocQualityIssueType​(ITSIssueType locQualityIssueType)
        Set the Localization Quality Issue Type.
        Since:
        2.5
        See Also:
        getLocQualityIssueType()
      • addExamplePair

        protected 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.
        Since:
        2.5