class CompoundRule extends AbstractCompoundRule {

  private static volatile CompoundRuleData compoundData;

  public CompoundRule(ResourceBundle messages, Language lang, UserConfig userConfig) throws IOException {
    super(messages, lang, userConfig,
            "Litrítear an focal seo le fleiscín de ghnáth.",
            "Litrítear an focal seo mar fhocal amháin de ghnáth.",
            "Litrítear an nath seo mar fhocal amháin nó le fleiscín.",
            "Fadhb leis an bhfleiscíniú");
    addExamplePair(Example.wrong("Tá <marker>mí úsáid</marker> fhisiciúil i gceist."),
                   Example.fixed("Tá <marker>mí-úsáid</marker> fhisiciúil i gceist."));
  }

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

  @Override
  public String getDescription() {
    return "Focail fhleiscínithe, e.g., Moltar 'ró-úsáid' seachas 'ró úsáid'";
  }

  @Override
  public CompoundRuleData getCompoundRuleData() {<FILL_FUNCTION_BODY>}

}

    CompoundRuleData data = compoundData;
    if (data == null) {
      synchronized (CompoundRule.class) {
        data = compoundData;
        if (data == null) {
          compoundData = data = new CompoundRuleData("/ga/compounds.txt");
        }
      }
    }

    return data;
  
<methods>public void <init>(java.util.ResourceBundle, org.languagetool.Language, org.languagetool.UserConfig, java.lang.String, java.lang.String, java.lang.String) throws java.io.IOException,public void <init>(java.util.ResourceBundle, org.languagetool.Language, org.languagetool.UserConfig, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.io.IOException,public int estimateContextForSureMatch() ,public abstract org.languagetool.rules.CompoundRuleData getCompoundRuleData() ,public abstract java.lang.String getDescription() ,public abstract java.lang.String getId() ,public boolean isMisspelled(java.lang.String) throws java.io.IOException,public org.languagetool.rules.RuleMatch[] match(org.languagetool.AnalyzedSentence) throws java.io.IOException,public java.lang.String mergeCompound(java.lang.String, boolean) ,public void useSubRuleSpecificIds() <variables>private static final java.util.regex.Pattern DASHES,private static final java.util.regex.Pattern DIGIT,static final int MAX_TERMS,private static final java.util.regex.Pattern WHITESPACE,private static final java.util.regex.Pattern WHITESPACE_DASH,protected final non-sealed org.languagetool.Language lang,protected final non-sealed org.languagetool.LinguServices linguServices,protected boolean sentenceStartsWithUpperCase,private final non-sealed java.lang.String shortDesc,protected boolean subRuleSpecificIds,private final non-sealed java.lang.String withHyphenMessage,private final non-sealed java.lang.String withOrWithoutHyphenMessage,private final non-sealed java.lang.String withoutHyphenMessage