public static synchronized List<LanguageVersion> getSupportedLanguageVersions() { if (supportedLanguageVersions == null) { List<LanguageVersion> languageVersions = new ArrayList<>(); for (LanguageVersion languageVersion : LanguageRegistry.findAllVersions()) { Optional.ofNullable(languageVersion.getLanguageVersionHandler()) .map(handler -> handler.getParser(handler.getDefaultParserOptions())) .filter(Parser::canParse) .ifPresent(p -> languageVersions.add(languageVersion)); } supportedLanguageVersions = languageVersions; } return supportedLanguageVersions; }
private static LanguageVersion[] getSupportedLanguageVersions() { List<LanguageVersion> languageVersions = new ArrayList<>(); for (LanguageVersion languageVersion : LanguageRegistry.findAllVersions()) { LanguageVersionHandler languageVersionHandler = languageVersion.getLanguageVersionHandler(); if (languageVersionHandler != null) { Parser parser = languageVersionHandler.getParser(languageVersionHandler.getDefaultParserOptions()); if (parser != null && parser.canParse()) { languageVersions.add(languageVersion); } } } return languageVersions.toArray(new LanguageVersion[0]); }
private static LanguageVersion[] getSupportedLanguageVersions() { List<LanguageVersion> languageVersions = new ArrayList<>(); for (LanguageVersion languageVersion : LanguageRegistry.findAllVersions()) { LanguageVersionHandler languageVersionHandler = languageVersion.getLanguageVersionHandler(); if (languageVersionHandler != null) { Parser parser = languageVersionHandler.getParser(languageVersionHandler.getDefaultParserOptions()); if (parser != null && parser.canParse()) { languageVersions.add(languageVersion); } } } return languageVersions.toArray(new LanguageVersion[0]); }