class GermanyGerman extends German {

  public static final GermanyGerman INSTANCE = new GermanyGerman();

  @Override
  public String[] getCountries() {
    return new String[]{"DE"};
  }

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

  @Override
  public List<Rule> getRelevantRules(ResourceBundle messages, UserConfig userConfig, Language motherTongue, List<Language> altLanguages) throws IOException {
    List<Rule> rules = new ArrayList<>(super.getRelevantRules(messages, userConfig, motherTongue, altLanguages));
    rules.add(new GermanCompoundRule(messages, this, userConfig));
    return rules;
  }

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

  @Override
  public List<String> getRuleFileNames() {
    List<String> ruleFileNames = new ArrayList<>(super.getRuleFileNames());
    ruleFileNames.add(getDataBroker().getRulesDir() + "/de/de-DE-AT/grammar.xml");
    return Collections.unmodifiableList(ruleFileNames);
  }

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

}

    List<Rule> rules = new ArrayList<>(super.getRelevantLanguageModelCapableRules(messages, languageModel, globalConfig, userConfig, motherTongue, altLanguages));
    Rule rule = userConfig == null && languageModel == null && altLanguages.isEmpty()
                ? getDefaultSpellingRule()
                : new GermanSpellerRule(messages, this, userConfig, null, altLanguages, languageModel);
    rules.add(rule);
    return rules;
  
<methods>public void <init>() ,public void close() throws java.lang.Exception,public org.languagetool.tagging.disambiguation.Disambiguator createDefaultDisambiguator() ,public org.languagetool.chunking.Chunker createDefaultPostDisambiguationChunker() ,public org.languagetool.tokenizers.SentenceTokenizer createDefaultSentenceTokenizer() ,public org.languagetool.rules.spelling.SpellingCheckRule createDefaultSpellingRule(java.util.ResourceBundle) throws java.io.IOException,public org.languagetool.synthesis.Synthesizer createDefaultSynthesizer() ,public org.languagetool.tagging.Tagger createDefaultTagger() ,public org.languagetool.tokenizers.Tokenizer createDefaultWordTokenizer() ,public java.lang.String getClosingDoubleQuote() ,public java.lang.String getClosingSingleQuote() ,public java.lang.String[] getCountries() ,public org.languagetool.Language getDefaultLanguageVariant() ,public org.languagetool.rules.de.GermanSpellerRule getDefaultSpellingRule() ,public synchronized org.languagetool.languagemodel.LanguageModel getLanguageModel(java.io.File) throws java.io.IOException,public org.languagetool.LanguageMaintainedState getMaintainedState() ,public org.languagetool.language.Contributor[] getMaintainers() ,public org.languagetool.rules.spelling.multitoken.MultitokenSpeller getMultitokenSpeller() ,public java.lang.String getName() ,public org.languagetool.tokenizers.CompoundWordTokenizer getNonStrictCompoundSplitter() ,public java.lang.String getOpeningDoubleQuote() ,public java.lang.String getOpeningSingleQuote() ,public Map<java.lang.String,java.lang.Integer> getPriorityMap() ,public List<org.languagetool.rules.Rule> getRelevantLanguageModelRules(java.util.ResourceBundle, org.languagetool.languagemodel.LanguageModel, org.languagetool.UserConfig) 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 java.lang.String getShortCode() ,public org.languagetool.tokenizers.de.GermanCompoundTokenizer getStrictCompoundTokenizer() ,public boolean hasMinMatchesRules() ,public boolean isAdvancedTypographyEnabled() ,public List<java.lang.String> prepareLineForSpeller(java.lang.String) ,public java.lang.String toAdvancedTypography(java.lang.String) <variables>private static final java.util.regex.Pattern AI_DE_GGEC_MISSING_PUNCT,private static final java.util.regex.Pattern TYPOGRAPHY_PATTERN,private static final Map<java.lang.String,java.lang.Integer> id2prio,private org.languagetool.languagemodel.LanguageModel languageModel