public static Languages getInstance(final String languagesResourceName) { // read languages list final Set<String> ls = new HashSet<String>(); final InputStream langIS = Languages.class.getClassLoader().getResourceAsStream(languagesResourceName); if (langIS == null) { throw new IllegalArgumentException("Unable to resolve required resource: " + languagesResourceName); } final Scanner lsScanner = new Scanner(langIS, ResourceConstants.ENCODING); try { boolean inExtendedComment = false; while (lsScanner.hasNextLine()) { final String line = lsScanner.nextLine().trim(); if (inExtendedComment) { if (line.endsWith(ResourceConstants.EXT_CMT_END)) { inExtendedComment = false; } } else { if (line.startsWith(ResourceConstants.EXT_CMT_START)) { inExtendedComment = true; } else if (line.length() > 0) { ls.add(line); } } } } finally { lsScanner.close(); } return new Languages(Collections.unmodifiableSet(ls)); }
/** * Guesses the languages of a word. * * @param input * the word * @return a Set of Strings of language names that are potential matches for the input word */ public Languages.LanguageSet guessLanguages(final String input) { final String text = input.toLowerCase(Locale.ENGLISH); final Set<String> langs = new HashSet<String>(this.languages.getLanguages()); for (final LangRule rule : this.rules) { if (rule.matches(text)) { if (rule.acceptOnMatch) { langs.retainAll(rule.languages); } else { langs.removeAll(rule.languages); } } } final Languages.LanguageSet ls = Languages.LanguageSet.from(langs); return ls.equals(Languages.NO_LANGUAGES) ? Languages.ANY_LANGUAGE : ls; } }
@Test(expected = IllegalArgumentException.class) public void testInvalidLanguageIllegalArgumentException() { Languages.getInstance("thereIsNoSuchLanguage"); }
/** * Guesses the languages of a word. * * @param input * the word * @return a Set of Strings of language names that are potential matches for the input word */ public Languages.LanguageSet guessLanguages(final String input) { final String text = input.toLowerCase(Locale.ENGLISH); final Set<String> langs = new HashSet<String>(this.languages.getLanguages()); for (final LangRule rule : this.rules) { if (rule.matches(text)) { if (rule.acceptOnMatch) { langs.retainAll(rule.languages); } else { langs.removeAll(rule.languages); } } } final Languages.LanguageSet ls = Languages.LanguageSet.from(langs); return ls.equals(Languages.NO_LANGUAGES) ? Languages.ANY_LANGUAGE : ls; } }
public static Languages getInstance(final String languagesResourceName) { // read languages list final Set<String> ls = new HashSet<String>(); final InputStream langIS = Languages.class.getClassLoader().getResourceAsStream(languagesResourceName); if (langIS == null) { throw new IllegalArgumentException("Unable to resolve required resource: " + languagesResourceName); } final Scanner lsScanner = new Scanner(langIS, ResourceConstants.ENCODING); try { boolean inExtendedComment = false; while (lsScanner.hasNextLine()) { final String line = lsScanner.nextLine().trim(); if (inExtendedComment) { if (line.endsWith(ResourceConstants.EXT_CMT_END)) { inExtendedComment = false; } } else { if (line.startsWith(ResourceConstants.EXT_CMT_START)) { inExtendedComment = true; } else if (line.length() > 0) { ls.add(line); } } } } finally { lsScanner.close(); } return new Languages(Collections.unmodifiableSet(ls)); }
@Test(expected = IllegalStateException.class) public void testInvalidLangIllegalStateException() { Lang.loadFromResource("thisIsAMadeUpResourceName", Languages.getInstance(NameType.GENERIC)); }
/** * Guesses the languages of a word. * * @param input * the word * @return a Set of Strings of language names that are potential matches for the input word */ public Languages.LanguageSet guessLanguages(final String input) { final String text = input.toLowerCase(Locale.ENGLISH); final Set<String> langs = new HashSet<String>(this.languages.getLanguages()); for (final LangRule rule : this.rules) { if (rule.matches(text)) { if (rule.acceptOnMatch) { langs.retainAll(rule.languages); } else { langs.removeAll(rule.languages); } } } final Languages.LanguageSet ls = Languages.LanguageSet.from(langs); return ls.equals(Languages.NO_LANGUAGES) ? Languages.ANY_LANGUAGE : ls; } }
public static Languages getInstance(final String languagesResourceName) { // read languages list final Set<String> ls = new HashSet<String>(); final InputStream langIS = Languages.class.getClassLoader().getResourceAsStream(languagesResourceName); if (langIS == null) { throw new IllegalArgumentException("Unable to resolve required resource: " + languagesResourceName); } final Scanner lsScanner = new Scanner(langIS, ResourceConstants.ENCODING); try { boolean inExtendedComment = false; while (lsScanner.hasNextLine()) { final String line = lsScanner.nextLine().trim(); if (inExtendedComment) { if (line.endsWith(ResourceConstants.EXT_CMT_END)) { inExtendedComment = false; } } else { if (line.startsWith(ResourceConstants.EXT_CMT_START)) { inExtendedComment = true; } else if (line.length() > 0) { ls.add(line); } } } } finally { lsScanner.close(); } return new Languages(Collections.unmodifiableSet(ls)); }
/** * Guesses the languages of a word. * * @param input * the word * @return a Set of Strings of language names that are potential matches for the input word */ public Languages.LanguageSet guessLanguages(final String input) { final String text = input.toLowerCase(Locale.ENGLISH); final Set<String> langs = new HashSet<String>(this.languages.getLanguages()); for (final LangRule rule : this.rules) { if (rule.matches(text)) { if (rule.acceptOnMatch) { langs.retainAll(rule.languages); } else { langs.removeAll(rule.languages); } } } final Languages.LanguageSet ls = Languages.LanguageSet.from(langs); return ls.equals(Languages.NO_LANGUAGES) ? Languages.ANY_LANGUAGE : ls; } }
public static Languages getInstance(final String languagesResourceName) { // read languages list final Set<String> ls = new HashSet<String>(); final InputStream langIS = Languages.class.getClassLoader().getResourceAsStream(languagesResourceName); if (langIS == null) { throw new IllegalArgumentException("Unable to resolve required resource: " + languagesResourceName); } final Scanner lsScanner = new Scanner(langIS, ResourceConstants.ENCODING); try { boolean inExtendedComment = false; while (lsScanner.hasNextLine()) { final String line = lsScanner.nextLine().trim(); if (inExtendedComment) { if (line.endsWith(ResourceConstants.EXT_CMT_END)) { inExtendedComment = false; } } else { if (line.startsWith(ResourceConstants.EXT_CMT_START)) { inExtendedComment = true; } else if (line.length() > 0) { ls.add(line); } } } } finally { lsScanner.close(); } return new Languages(Collections.unmodifiableSet(ls)); }
/** * Guesses the languages of a word. * * @param input * the word * @return a Set of Strings of language names that are potential matches for the input word */ public Languages.LanguageSet guessLanguages(final String input) { final String text = input.toLowerCase(Locale.ENGLISH); final Set<String> langs = new HashSet<String>(this.languages.getLanguages()); for (final LangRule rule : this.rules) { if (rule.matches(text)) { if (rule.acceptOnMatch) { langs.retainAll(rule.languages); } else { langs.removeAll(rule.languages); } } } final Languages.LanguageSet ls = Languages.LanguageSet.from(langs); return ls.equals(Languages.NO_LANGUAGES) ? Languages.ANY_LANGUAGE : ls; } }
public static Languages getInstance(final String languagesResourceName) { // read languages list final Set<String> ls = new HashSet<String>(); final InputStream langIS = Languages.class.getClassLoader().getResourceAsStream(languagesResourceName); if (langIS == null) { throw new IllegalArgumentException("Unable to resolve required resource: " + languagesResourceName); } final Scanner lsScanner = new Scanner(langIS, ResourceConstants.ENCODING); try { boolean inExtendedComment = false; while (lsScanner.hasNextLine()) { final String line = lsScanner.nextLine().trim(); if (inExtendedComment) { if (line.endsWith(ResourceConstants.EXT_CMT_END)) { inExtendedComment = false; } } else { if (line.startsWith(ResourceConstants.EXT_CMT_START)) { inExtendedComment = true; } else if (line.length() > 0) { ls.add(line); } } } } finally { lsScanner.close(); } return new Languages(Collections.unmodifiableSet(ls)); }
/** * Guesses the languages of a word. * * @param input * the word * @return a Set of Strings of language names that are potential matches for the input word */ public Languages.LanguageSet guessLanguages(final String input) { final String text = input.toLowerCase(Locale.ENGLISH); final Set<String> langs = new HashSet<String>(this.languages.getLanguages()); for (final LangRule rule : this.rules) { if (rule.matches(text)) { if (rule.acceptOnMatch) { langs.retainAll(rule.languages); } else { langs.removeAll(rule.languages); } } } final Languages.LanguageSet ls = Languages.LanguageSet.from(langs); return ls.equals(Languages.NO_LANGUAGES) ? Languages.ANY_LANGUAGE : ls; } }
public static Languages getInstance(final String languagesResourceName) { // read languages list final Set<String> ls = new HashSet<String>(); final InputStream langIS = Languages.class.getClassLoader().getResourceAsStream(languagesResourceName); if (langIS == null) { throw new IllegalArgumentException("Unable to resolve required resource: " + languagesResourceName); } final Scanner lsScanner = new Scanner(langIS, ResourceConstants.ENCODING); try { boolean inExtendedComment = false; while (lsScanner.hasNextLine()) { final String line = lsScanner.nextLine().trim(); if (inExtendedComment) { if (line.endsWith(ResourceConstants.EXT_CMT_END)) { inExtendedComment = false; } } else { if (line.startsWith(ResourceConstants.EXT_CMT_START)) { inExtendedComment = true; } else if (line.length() > 0) { ls.add(line); } } } } finally { lsScanner.close(); } return new Languages(Collections.unmodifiableSet(ls)); }