Class 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 Details

    • shortMessage

      private final String shortMessage
    • elementNo

      private final List<Integer> elementNo
    • simpleRuleTokens

      private final Set<String> simpleRuleTokens
    • inflectedRuleTokens

      private final Set<String> inflectedRuleTokens
    • useList

      private final boolean useList
    • interpretPosTagsPreDisambiguation

      private boolean interpretPosTagsPreDisambiguation
    • isMemberOfDisjunctiveSet

      private boolean isMemberOfDisjunctiveSet
  • Constructor Details

    • PatternRule

      public PatternRule(String id, Language language, List<PatternToken> patternTokens, String description, String message, String shortMessage, 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 Rule
      description - Description to be shown (name)
      message - Message to be displayed to the user
      shortMessage - Message to be displayed to the user in the context menu in OpenOffice.org/LibreOffice
    • PatternRule

      public PatternRule(String id, Language language, List<PatternToken> patternTokens, String description, String message, String shortMessage)
    • PatternRule

      public PatternRule(String id, Language language, List<PatternToken> patternTokens, String description, String message, String shortMessage, String suggestionsOutMsg, boolean isMember)
    • PatternRule

      @Experimental public PatternRule(String id, Language language, List<PatternToken> patternTokens, String description, String message, String shortMessage, String suggestionsOutMsg, boolean isMember, boolean interpretPosTagsPreDisambiguation)
      Since:
      4.5
  • Method Details

    • 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 class Rule
    • 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 String toPatternString()
      Return the pattern as a string, using toString() on the pattern elements.
      Since:
      0.9.2
    • toXML

      public final 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 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 class AbstractPatternRule
      Parameters:
      sentence - a pre-analyzed sentence
      Returns:
      an array of RuleMatch objects
      Throws:
      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 Set<String> getSet(boolean isInflected)
    • getElementNo

      List<Integer> getElementNo()
    • getShortMessage

      String getShortMessage()
      Overrides:
      getShortMessage in class AbstractPatternRule
      Returns:
      String of short message as specified in <short>...</short>