public static List<Language> getTemplateableLanguages() { return ContainerUtil.findAll(Language.getRegisteredLanguages(), new Condition<Language>() { @Override public boolean value(final Language language) { if (language == Language.ANY) return false; if (language instanceof TemplateLanguage || language instanceof DependentLanguage || language instanceof InjectableLanguage) return false; if (language.getBaseLanguage() != null) return value(language.getBaseLanguage()); return true; } }); }