Class PatternRule

Direct Known Subclasses:
FalseFriendPatternRule

public class PatternRule extends AbstractTokenBasedRule
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
    • 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

      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

      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

      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

      public 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

      public 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 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 from 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). In other words, implementations must be stateless, so that a previous call to this method has no influence on later calls.
      Overrides:
      match in class AbstractPatternRule
      Parameters:
      sentence - a pre-analyzed sentence
      Returns:
      an array of RuleMatch objects
      Throws:
      IOException
    • checkForAntiPatterns

      private RuleMatch[] checkForAntiPatterns(AnalyzedSentence sentence, RuleMatcher matcher, RuleMatch[] matches) throws IOException
      Throws:
      IOException
    • getElementNo

      List<Integer> getElementNo()
    • getShortMessage

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