Set<String> (@NotNull Language key) { Set<String> allowed = new HashSet<>(); while (key != null) { allowed.add(keyToString(key)); for (MetaLanguage metaLanguage : MetaLanguage.all()) { if (metaLanguage.matchesLanguage(key)) { allowed.add(metaLanguage.getID()); } } key = key.getBaseLanguage(); } allowed.add("any"); return allowed; }