// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package org.apache.commons.codec.language.bm; import java.util.Collections; import java.util.EnumMap; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.NoSuchElementException; import java.util.Scanner; import java.util.Set; // Referenced classes of package org.apache.commons.codec.language.bm: // NameType public class Languages { public static abstract class LanguageSet { public static LanguageSet from(Set set) { if (set.isEmpty()) { return Languages.NO_LANGUAGES; } else { return new SomeLanguages(set); } } public abstract boolean contains(String s); public abstract String getAny(); public abstract boolean isEmpty(); public abstract boolean isSingleton(); abstract LanguageSet merge(LanguageSet languageset); public abstract LanguageSet restrictTo(LanguageSet languageset); public LanguageSet() { } } public static final class SomeLanguages extends LanguageSet { private final Set languages; public boolean contains(String s) { return languages.contains(s); } public String getAny() { return (String)languages.iterator().next(); } public Set getLanguages() { return languages; } public boolean isEmpty() { return languages.isEmpty(); } public boolean isSingleton() { return languages.size() == 1; } public LanguageSet merge(LanguageSet languageset) { if (languageset == Languages.NO_LANGUAGES) { return this; } if (languageset == Languages.ANY_LANGUAGE) { return languageset; } Object obj = (SomeLanguages)languageset; languageset = new HashSet(languages); for (obj = ((SomeLanguages) (obj)).languages.iterator(); ((Iterator) (obj)).hasNext(); languageset.add((String)((Iterator) (obj)).next())) { } return from(languageset); } public LanguageSet restrictTo(LanguageSet languageset) { if (languageset == Languages.NO_LANGUAGES) { return languageset; } if (languageset == Languages.ANY_LANGUAGE) { return this; } languageset = (SomeLanguages)languageset; HashSet hashset = new HashSet(Math.min(languages.size(), ((SomeLanguages) (languageset)).languages.size())); Iterator iterator = languages.iterator(); do { if (!iterator.hasNext()) { break; } String s = (String)iterator.next(); if (((SomeLanguages) (languageset)).languages.contains(s)) { hashset.add(s); } } while (true); return from(hashset); } public String toString() { return (new StringBuilder()).append("Languages(").append(languages.toString()).append(")").toString(); } private SomeLanguages(Set set) { languages = Collections.unmodifiableSet(set); } } public static final String ANY = "any"; public static final LanguageSet ANY_LANGUAGE = new LanguageSet() { public boolean contains(String s) { return true; } public String getAny() { throw new NoSuchElementException("Can't fetch any language from the any language set."); } public boolean isEmpty() { return false; } public boolean isSingleton() { return false; } public LanguageSet merge(LanguageSet languageset) { return languageset; } public LanguageSet restrictTo(LanguageSet languageset) { return languageset; } public String toString() { return "ANY_LANGUAGE"; } }; private static final Map LANGUAGES; public static final LanguageSet NO_LANGUAGES = new LanguageSet() { public boolean contains(String s) { return false; } public String getAny() { throw new NoSuchElementException("Can't fetch any language from the empty language set."); } public boolean isEmpty() { return true; } public boolean isSingleton() { return false; } public LanguageSet merge(LanguageSet languageset) { return languageset; } public LanguageSet restrictTo(LanguageSet languageset) { return this; } public String toString() { return "NO_LANGUAGES"; } }; private final Set languages; private Languages(Set set) { languages = set; } public static Languages getInstance(String s) { Object obj; boolean flag; obj = new HashSet(); java.io.InputStream inputstream = org/apache/commons/codec/language/bm/Languages.getClassLoader().getResourceAsStream(s); if (inputstream == null) { throw new IllegalArgumentException((new StringBuilder()).append("Unable to resolve required resource: ").append(s).toString()); } s = new Scanner(inputstream, "UTF-8"); flag = false; _L2: String s1; if (!s.hasNextLine()) { break MISSING_BLOCK_LABEL_134; } s1 = s.nextLine().trim(); if (!flag) { break MISSING_BLOCK_LABEL_95; } if (!s1.endsWith("*/")) goto _L2; else goto _L1 _L1: flag = false; goto _L2 if (!s1.startsWith("/*")) goto _L4; else goto _L3 _L3: flag = true; goto _L2 _L4: if (s1.length() <= 0) goto _L2; else goto _L5 _L5: ((Set) (obj)).add(s1); goto _L2 obj; s.close(); throw obj; s.close(); return new Languages(Collections.unmodifiableSet(((Set) (obj)))); } public static Languages getInstance(NameType nametype) { return (Languages)LANGUAGES.get(nametype); } private static String langResourceName(NameType nametype) { return String.format("org/apache/commons/codec/language/bm/%s_languages.txt", new Object[] { nametype.getName() }); } public Set getLanguages() { return languages; } static { LANGUAGES = new EnumMap(org/apache/commons/codec/language/bm/NameType); NameType anametype[] = NameType.values(); int j = anametype.length; for (int i = 0; i < j; i++) { NameType nametype = anametype[i]; LANGUAGES.put(nametype, getInstance(langResourceName(nametype))); } } }