class SimpleGerman extends GermanyGerman {

  @Override
  public boolean isVariant() {
    return true;
  }

  @Override
  public String getName() {
    return "Simple German";
  }

  @Override
  public String getShortCode() {
    return "de-DE-x-simple-language";  // a "private use tag" according to http://tools.ietf.org/html/bcp47
  }

  @Override
  public Contributor[] getMaintainers() {
    return new Contributor[] {
        new Contributor("Annika Nietzio")
    };
  }
  
  @Override
  public Disambiguator createDefaultDisambiguator() {
    return new GermanRuleDisambiguator(GermanyGerman.INSTANCE);
  }

  @Override
  public List<Rule> getRelevantRules(ResourceBundle messages, UserConfig userConfig, Language motherTongue, List<Language> altLanguages) throws IOException {
    List<Rule> rules = new ArrayList<>();
    LongSentenceRule lengthRule = new LongSentenceRule(messages, userConfig, 12);
    rules.add(lengthRule);
    return rules;
  }
  
  @Override
  public LanguageModel getLanguageModel(File indexDir) throws IOException {
    return null;
  }

  @Override
  public List<Rule> getRelevantLanguageModelRules(ResourceBundle messages, LanguageModel languageModel, UserConfig userConfig) throws IOException {
    return Collections.emptyList();
  }

  @Override
  public List<Rule> getRelevantLanguageModelCapableRules(ResourceBundle messages, @Nullable LanguageModel languageModel, GlobalConfig globalConfig, UserConfig userConfig, Language motherTongue, List<Language> altLanguages) throws IOException {
    return Collections.emptyList();
  }

  @Override
  protected int getPriorityForId(String id) {
    if (id.equals("TOO_LONG_SENTENCE")) {
      return 10;
    } else if (id.equals("LANGES_WORT")) {
      return -1;
    }
    return super.getPriorityForId(id);
  }

  @Override
  public List<String> getRuleFileNames() {<FILL_FUNCTION_BODY>}

}

    List<String> ruleFileNames = new ArrayList<>();
    String dirBase = JLanguageTool.getDataBroker().getRulesDir() + "/" + getShortCode() + "/";
    ruleFileNames.add(dirBase + "grammar.xml");
    return ruleFileNames;
  
<methods>public non-sealed void <init>() ,public java.lang.String[] getCountries() ,public java.lang.String getName() ,public List<org.languagetool.rules.Rule> getRelevantLanguageModelCapableRules(java.util.ResourceBundle, org.languagetool.languagemodel.LanguageModel, org.languagetool.GlobalConfig, org.languagetool.UserConfig, org.languagetool.Language, List<org.languagetool.Language>) throws java.io.IOException,public List<org.languagetool.rules.Rule> getRelevantRules(java.util.ResourceBundle, org.languagetool.UserConfig, org.languagetool.Language, List<org.languagetool.Language>) throws java.io.IOException,public List<java.lang.String> getRuleFileNames() ,public boolean isVariant() <variables>public static final org.languagetool.language.GermanyGerman INSTANCE