class EnglishUnpairedQuotesRule extends GenericUnpairedQuotesRule {

  private static final List<String> EN_START_SYMBOLS = Arrays.asList("“", "\"", "'", "‘");
  private static final List<String> EN_END_SYMBOLS   = Arrays.asList("”", "\"", "'", "’");

  public EnglishUnpairedQuotesRule(ResourceBundle messages, Language language) {
    super(messages, EN_START_SYMBOLS, EN_END_SYMBOLS);
    setUrl(Tools.getUrl("https://languagetool.org/insights/post/punctuation-guide/#what-are-parentheses"));
      addExamplePair(Example.wrong("\"I'm over here,<marker></marker> she said."),
                     Example.fixed("\"I'm over here,<marker>\"</marker> she said."));
  }

  @Override
  public String getId() {
    return "EN_UNPAIRED_QUOTES";
  }

  @Override
  protected boolean isNotBeginningApostrophe(AnalyzedTokenReadings[] tokens, int i) {
    if (tokens[i].hasPosTag("_apostrophe_contraction_") || tokens[i].hasPosTag("POS") || tokens[i].hasPosTag("NNP")) {
      return false;
    }
    return true;
  }

  @Override
  protected boolean isNotEndingApostrophe(AnalyzedTokenReadings[] tokens, int i) {<FILL_FUNCTION_BODY>}
 

}

    if (tokens[i].hasPosTag("_apostrophe_contraction_") || tokens[i].hasPosTag("POS") || tokens[i].hasPosTag("NNP")) {
      return false;
    }
    return true;
  
<methods>public void <init>(java.lang.String, java.util.ResourceBundle, List<java.lang.String>, List<java.lang.String>) ,public void <init>(java.util.ResourceBundle, List<java.lang.String>, List<java.lang.String>) ,public void <init>(java.util.ResourceBundle) ,public java.lang.String getDescription() ,public java.lang.String getId() ,public final org.languagetool.rules.RuleMatch[] match(List<org.languagetool.AnalyzedSentence>) ,public int minToCheckParagraph() <variables>private static final java.util.regex.Pattern INCH_PATTERN,private static final java.util.regex.Pattern POSSIBLE_APOSTROPHE,private static final java.util.regex.Pattern PUNCTUATION,private static final java.util.regex.Pattern PUNCT_MARKS,private final non-sealed List<java.lang.String> endSymbols,private final non-sealed java.lang.String ruleId,private final non-sealed List<java.lang.String> startSymbols