code: public List<RuleMatch> checkAnalyzedSentence(ParagraphHandling paraMode,
          List<Rule> rules, AnalyzedSentence analyzedSentence) throws IOException {
      List<RuleMatch> sentenceMatches = new ArrayList<>();
      RuleLoggerManager logger = RuleLoggerManager.getInstance();
      for (Rule rule : rules) {
        if (rule instanceof TextLevelRule) {
          continue;
        }
        if (ignoreRule(rule)) {
          continue;
        }
        if (rule instanceof PatternRule && ((PatternRule)rule).canBeIgnoredFor(analyzedSentence)) {
          // this is a performance optimization, it should have no effect on matching logic
          continue;
        }
        if (paraMode == ParagraphHandling.ONLYPARA) {
          continue;
        }
        long time = System.currentTimeMillis();
        RuleMatch[] thisMatches = rule.match(analyzedSentence);
        logger.log(new RuleCheckTimeMessage(rule.getId(), language.getShortCodeWithCountryAndVariant(),
          time, analyzedSentence.getText().length()), Level.FINE);
        for (RuleMatch elem : thisMatches) {
          sentenceMatches.add(elem);
        }
      }
      return new SameRuleGroupFilter().filter(sentenceMatches);
    }
docs: This is an internal method that's public only for technical reasons, please use one
  of the {@link #check(String)} methods instead.
  @since 2.3