class DateCheckFilter extends AbstractDateCheckWithSuggestionsFilter {

  private final DateFilterHelper dateFilterHelper = new DateFilterHelper();

  @Override
  protected Calendar getCalendar() {
    return dateFilterHelper.getCalendar();
  }

  @Override
  protected String getErrorMessageWrongYear() {
    return "This date is wrong. Did you mean \"{currentYear}\"?";
  }

  @SuppressWarnings("ControlFlowStatementWithoutBraces")
  @Override
  protected int getDayOfWeek(String dayStr) {
    return dateFilterHelper.getDayOfWeek(dayStr);
  }

  @Override
  protected String getDayOfWeek(Calendar date) {
    return dateFilterHelper.getDayOfWeek(date);
  }

  @SuppressWarnings({"ControlFlowStatementWithoutBraces", "MagicNumber"})
  @Override
  protected int getMonth(String monthStr) {
    return dateFilterHelper.getMonth(monthStr);
  }

  @Override
  protected String getDayStrLikeOriginal(String day, String original) {<FILL_FUNCTION_BODY>}
}

    if (StringTools.isNumeric(original)) {
      return day;
    }
    int number = Integer.parseInt(day);
    if (number >= 11 && number <= 13) {
      return number + "th";
    }
    switch (number % 10) {
      case 1:
        return number + "st";
      case 2:
        return number + "nd";
      case 3:
        return number + "rd";
      default:
        return number + "th";
    }
  
<methods>public non-sealed void <init>() ,public org.languagetool.rules.RuleMatch acceptRuleMatch(org.languagetool.rules.RuleMatch, Map<java.lang.String,java.lang.String>, int, org.languagetool.AnalyzedTokenReadings[], List<java.lang.Integer>) <variables>protected static final java.util.regex.Pattern DAY_OF_MONTH_PATTERN,private static final Logger logger